字符集的字符集是否保证为ASCII?

Luc*_*ore 7 c++ standards ascii

这里开始的讨论开始,标准是否为字符指定了值?那么,'0'保证是48?这就是ASCII告诉我们的,但它有保证吗?如果没有,你看到任何编译器'0'不是48?

CB *_*ley 16

不需要.源或执行字符集都不要求使用带有ASCII子集的编码.我没有看到任何非ASCII实现,但我知道有人知道有人.(要求'0' - '9'具有连续的整数值,但这是SO上其他地方的重复问题.)

用于源字符集的编码控制如何将源代码的字节解释为C++语言中使用的字符.该标准将执行字符集的成员描述为具有值.它是将这些字符映射到其对应值的编码,它确定了整数值'0'.

尽管至少所有基本源字符集的成员加上一些控制字符和值为零的空字符必须在执行字符集中存在(具有适当的值),但不要求编码为ASCII或对任何特定字符子集使用ASCII值(空字符除外).

  • +1,因为你认识一个认识一个人的人. (3认同)
  • 源和执行字符集是字符集,并且对于这些字符集中至少必须包含的内容有特定要求.这是未指定的那些字符的**编码**(除了'0'到'9'的约束之外).这是一个重要的区别,如果被忽视,会混淆关于角色的讨论.这不是一个问题...... (2认同)

Ben*_*igt 11

不,标准非常小心,不要指定源字符编码是什么.

C,C++编译器也可以在EBCDIC计算机上运行,​​你知道,在哪里'0' != 0x30.

但是,我认为这是必须的'1' == '0' + 1.