为什么C++中有替代代币

Why are there alternative tokens in C++?

本文关键字:C++ 为什么      更新时间:2023-10-16

可能的重复项:
为什么 C 和 C++ 中有二合字母?
C ??!??!什么操作员做?!

在C++中,有 [] 和 {} 等的替代令牌。

例如,以下代码编译:

%:include <stdio.h>
int main() <%
    printf("Hello World!");
}

我想了一会儿,但想不出任何适用性,这有什么合乎逻辑的原因吗?

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

C99基本原理文件第5.2.1.1 Trigraph sequences节是这样说的:

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

C 语言使用的 ASCII 指令表中没有的字符在 ISO/IEC 646 不变指令栏中没有的字符是 #[]{}|~^