在 C 标准 f.e. (我的参考资料特别是 ISO/IEC 9899:2011 (C11(( §3.6 中指出:
3.6
1 字节
数据存储的可寻址单元,其大小足以容纳执行环境的基本字符集的任何成员
2 注1 可以唯一地表示对象每个单独字节的地址。
3 注2字节由一个连续的位序列组成,其数量是实现定义的。最低有效位称为低阶位;最高有效位称为高阶位。
为什么会这样?我认为在由8位组成的信息技术中,字节的大小是绝对固定的。
为什么《标准》会做出这种看似疯狂的声明?
也: 如果字节大小不是固定的,我们怎么能谈论一个由 8 位和 32 位(4 字节(int
组成的char
,假设 64 位系统?
我认为字节的大小在由8位组成的信息技术中是绝对固定的。
不。这就是"字节"的演变,现在很常见 8.
其他值 9, 16, 18, 32, 64 ....由于各种技术(和业务(原因而发生。 它们今天的稀有性确实令人惊讶,CHAR_BIT
可能不是 8 个。
Recall C非常便携,可以适应各种架构。
如果字节大小不是固定的,我们怎么能谈论由 8 位和 32 位(4 字节(组成的 char,假设 64 位系统?
在 C 中,您不能 - 一般来说。char
可能是 9 位或 64 位,依此类推。如今,这样的系统很少见。
避免将"假定 64 位系统"作为将int
大小驱动到一定宽度的要求。 更多因素适用。