【发布时间】:2013-05-15 18:20:15
【问题描述】:
我从一些遗留代码中看到了以下代码:
size_t a = 1 ???- 2 :0;
符号???- 在 C++ 中是什么意思?应该怎么理解?
【问题讨论】:
-
???只能在 cmets 中使用。 :) -
为这个运算符想出一个虚假的含义会很有趣。
???-可能是“真的???我感到震惊!'运算符,?,例如向编译器提示第一个分支很少被采用。 -
强制性 WTF 操作员提及:??!??!
-
Trigraphs 的存在是为了解决两个问题。首先,一些嵌入式系统仅支持非常有限的字符集,可能无法显示或输入“^”和“~”等字符。其次,一些操作系统支持多个代码页,这些代码页对“~”、“^”、“|”有不同的编码。等。确保您的代码支持所有代码页变体的唯一方法是使用三元组(这里看着您 IBM EBCDIC!)。
-
@JamesAnderson 嵌入式系统?你在抽什么?三元组不会影响程序功能或目标系统。它们实际上是源文件的字符编码,并为缺少键盘上某些键的用户提供了便利。 IBM 游说反对他们的弃用,因为据说它允许他们避免强迫他们的大型机用户对 EBCDIC 文本编码进行标准化。但大型机与嵌入式系统完全相反。