2

一位同事告诉我:

C++ 不支持 ASCII。

C++程序的源字符集是实现定义的,那么我的同事在多大程度上是不正确的?

4

2 回答 2

6

当 c++ 编译器将数值链接48'0'. 所以是的,它需要能够识别 ASCII。

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

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

于 2013-04-02T11:57:09.673 回答
5

C++ 标准文本“意识到” ASCII,因为它在脚注中进行了非规范性提及:

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

在这样做时,它声明标准化语言本身支持 ASCII。

“对我来说,这似乎是对 ASCII 的认识!” 你可能会说。嗯,不。在语言定义中仅仅提到“ASCII”并没有使语言能够识别 ASCII。这与您可以编程机器人说出“我没有自我意识”这句话的方式相同,而无需机器人意识到自己。

于 2013-04-02T11:45:19.057 回答