可能重复:
Why are there digraphs in C and C++?
What does the C ??!??! operator do?!
在C ++中,有[]和{}等替代令牌。
E.g。以下代码编译:
%:include <stdio.h>
int main() <%
printf("Hello World!");
}
我考虑了一段时间,但无法确定任何适用性,是否有任何合理的原因?
答案 0 :(得分:7)
他们是C的宿醉,真的。有C的实现,其中并非所有字符都可用(例如某些没有方括号的EBCDIC变体)。
C99基本原理文档5.2.1.1 Trigraph sequences
部分有这样的说法:
在C89中引入Trigraph序列作为某些字符的替代拼写,以允许在不提供足够数量的非字母图形的字符集中实现C.
C使用的ASCII保留曲目中的字符和ISO / IEC 646不变曲目中没有的字符是
#
,[
,]
,{
,{{1 }},}
,\
,|
和~