Lig*_*ica 2 c++ language-lawyer
一位同事告诉我:
C++不支持ASCII.
C++程序的源字符集是实现定义的,所以我的同事在多大程度上不正确?
C++编译器必须是ASCII知道,当它的数字链接48的价值'0'.所以是的,它需要具有ASCII感知能力.
但它总是需要吗?想象一下你使用EBCDIC('0' => 240).然后编译器可能不关心ASCII.也许这就是你同事的意思.
一般来说,C++并不真正关心ASCII.这是一个实现细节.
C++ 标准文本“知道”ASCII,因为它在脚注中进行了非规范性提及:
[C++11: Footnote 14]:基本源字符集成员的字形旨在从对应于 ASCII 字符集的 ISO/IEC 10646 子集中识别字符。然而,因为从源文件字符到源字符集的映射(在翻译阶段 1 中描述)被指定为实现定义,所以需要一个实现来记录基本源字符如何在源文件中表示。
这样做是在声明标准化语言本身不支持ASCII。
“对我来说似乎是对 ASCII 的认识!” 你可能会说。嗯,不。仅仅在语言定义中提到“ASCII”并没有使语言能够识别 ASCII。这与您可以对机器人进行编程以说出“我没有自我意识”这两个词的方式相同,而无需机器人意识到自我。
| 归档时间: |
|
| 查看次数: |
215 次 |
| 最近记录: |