有机器(或编译器),在哪里sizeof(char) != 1?
C99标准是否说sizeof(char)标准合规性实施必须正好1?如果有,请给我部分编号和引文.
更新:
如果我有一台机器(CPU),它不能寻址字节(最小读取是4个字节,对齐),但只有4-s的字节(uint32_t),这个机器的编译器可以定义 sizeof(char)为4吗?sizeof(char)将是1,但char将有32位(CHAR_BIT宏)
Update2: 但是sizeof结果不是BYTES!这是CHAR的大小.char可以是2个字节,或者(可能是)7位?
Update3:
好的.所有机器都有sizeof(char) == 1.但机器有CHAR_BIT > 8什么?
我一直在读句子
不要依赖大小为8位的1字节
使用
CHAR_BIT而不是8作为常量来转换位和字节
等等.今天有什么现实生活系统,这是真的吗? (我不确定C和C++之间是否存在差异,或者它是否与语言无关.如果需要,请重新加入.)
C++源代码的标准编码是什么?C++标准是否甚至对此有所说明?我可以用Unicode编写C++源代码吗?
例如,我可以在评论中使用非ASCII字符,例如中文字符吗?如果是这样,是允许完全Unicode还是只是Unicode的一个子集?(例如,那个16位的第一页或者它被称为的任何东西.)
此外,我可以使用Unicode作为字符串吗?例如:
Wstring str=L"Strange chars: â ?š? ? €€";
Run Code Online (Sandbox Code Playgroud)