根据 C 标准,int 的大小是多少?

Abr*_*don 0 c integer

我知道现在几乎所有的编译器都使用 4 个字节来表示 int,但如果我没记错的话,情况并非总是如此。

我也知道在 Intel 架构上 int 的大小总是与 CPU 匹配。例如,在 8 位 CPU 上,int 是 8 位。

我的问题是,如果有的话,C 标准对 int 的大小有什么规定吗?

438*_*427 5

我的问题是,如果有的话,C 标准对 int 的大小有什么规定吗?

''plain'' int 对象具有执行环境架构建议的自然大小(大到足以包含头文件 <limits.h> 中定义的 INT_MIN 到 INT_MAX 范围内的任何值)。

它们的实现定义的值在幅度(绝对值)上应等于或大于所示值,并具有相同的符号。

— int INT_MIN -32767 类型对象的最小值 // ?(2^15 ? 1)

— int 类型对象的最大值 INT_MAX +32767 // 2^15 ? 1

所以你不能int在兼容的实现上有 8 位。