在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是非常罕见的。

Interesting Posts