字大小混乱

YAH*_*OOO 3 c++ byte char bit

据我所知,1 char = 1字节= 8位(32位系统).

char c=0xffff0000;  //wrong
Run Code Online (Sandbox Code Playgroud)

那么为什么char只允许8位以及文件中的每个字符也是8位长度.

谢谢.

Chu*_*dad 17

根据定义,char的大小是1.但这并不意味着它总是占用32位/ 8位.

$ 3.9.1/1-"声明为字符(char)的对象应足够大,以存储实现的基本字符集的任何成员."

似乎有一个字节是8位的混淆.但是,C++标准并未强制要求这样做.

以下是标准$ 1.7/1中字节的定义方式

C++内存模型中的基本存储单元是字节.一个字节至少足以包含基本执行字符集的任何成员,并且由连续的位序列组成,其数量是实现定义的.

很清楚,一个字节不必总是8位.

  • 你知道一个字节不是8位的系统吗?好奇. (2认同)
  • 我听说有些DSP有1位12位(希望我/我没有错). (2认同)