c语言 - 为什么定义一个字节(以位为单位)实现的大小并使用该变量?我认为一个字节总是一致的 8 位



在 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大小驱动到一定宽度的要求。 更多因素适用。

相关内容

最新更新