为什么在C ++中有替代令牌?

时间:2012-10-02 04:20:49

标签: c++ ansi

  

可能重复:
  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!");
}

我考虑了一段时间,但无法确定任何适用性,是否有任何合理的原因?

1 个答案:

答案 0 :(得分:7)

他们是C的宿醉,真的。有C的实现,其中并非所有字符都可用(例如某些没有方括号的EBCDIC变体)。

C99基本原理文档5.2.1.1 Trigraph sequences部分有这样的说法:

  

在C89中引入Trigraph序列作为某些字符的替代拼写,以允许在不提供足够数量的非字母图形的字符集中实现C.

     

C使用的ASCII保留曲目中的字符和ISO / IEC 646不变曲目中没有的字符是#[]{,{{1 }},}\|~