在C ++代码中`??? – `的意思
我从一些遗留代码中看到了以下代码:
size_t a = 1 ???- 2 :0;
符号是什么???-
在C ++中的意思? 我应该怎么理解呢?
谢谢!
其实是:
size_t a = 1 ? ~2 :0;
??-
是~
的三字母
三位一体来自一个古老的时代……在我们中的一些人甚至出生之前。
回到过去,有些angular色并不总是被支持。 一个不知名的程序员会尝试input这样的字符,只是发现它不存在于键盘上!
图片来源: http : //www.myoldmac.net/cgi-data/forum/phpBB2/viewtopic.php? t = 305
因此,trigraphs被添加来允许程序员在不存在的时候访问这些字符的function(无论是编码还是键盘)。
如今,它们已经过时了,而且在混淆读者方面比在旧标准中更为有效。
所以无论这个代码是真的老了,还是作者是一个混蛋。
??-
是代字符~
字符的三字母; 该行相当于:
size_t a = 1 ? ~2 :0;
??-
是~
字符的三字母。 其他一些trigraphs是:
??= for # ??/ for \ ??' for ^ ??! for |
现在使用trigraphs是非常罕见的。