在C++中,有[]和{}等替代令牌.
例如,以下代码编译:
%:include <stdio.h>
int main() <%
printf("Hello World!");
}
Run Code Online (Sandbox Code Playgroud)
我想了一会儿却想不出任何适用性,这有什么合理的理由吗?
真的,他们是C的宿醉.有C的实现,其中并非所有字符都可用(例如没有方括号的EBCDIC的某些变体).
C99理由文件,部分5.2.1.1 Trigraph sequences有这样的说法:
在C89中引入Trigraph序列作为一些字符的替代拼写,以允许在不提供足够数量的非字母图形的字符集中实现C.
被C从ISO/IEC 646不变剧目使用,并且不存在在ASCII剧目字符是
#,[,],{,},\,|,~,和^