Is C++ ASCII-aware?

Is C++ ASCII-aware?

本文关键字:ASCII-aware C++ Is      更新时间:2023-10-16

一个同事告诉我:

c++不支持ascii。

c++程序的源字符集是实现定义的,那么我的同事在多大程度上是错误的?

c++编译器在链接数值48'0'时需要ASCII感知。所以是的,它需要支持ascii。

但是它总是需要吗?假设您使用EBCDIC ('0' => 240)。那么编译器可能并不关心ASCII码。也许这就是你同事的意思。

一般来说,c++并不真正关心ASCII。这是一个实现细节。

c++标准文本"意识到"ASCII,因为它在脚注中做了非规范的提及:

[C++11: Footnote 14]:基本源字符集成员的字形旨在识别与ASCII字符集对应的ISO/IEC 10646子集中的字符。然而,由于从源文件字符到源字符集的映射(在转换阶段1中描述)被指定为实现定义的,因此需要实现记录如何在源文件中表示基本源字符。

这样做,它声明了标准化语言本身是不支持 ascii的。

"对我来说似乎是ASCII的意识!"你可能会说。嗯,没有。仅仅在语言定义中提到"ASCII"并不能使语言支持ASCII。这与你可以编程一个机器人说出"我没有自我意识"这句话的方式是一样的,而不需要机器人意识到自我。