【发布时间】:2021-08-07 17:52:31
【问题描述】:
我知道现在几乎所有的编译器都使用 4 个字节作为 int,但如果我没记错的话,并非总是这样。
我还知道,在 Intel 架构上,int 的大小始终与 CPU 相匹配。例如,在 8 位 CPU 上,int 是 8 位。
我的问题是,如果有的话,C 标准对 int 的大小有什么规定?
【问题讨论】:
-
有几种 C 标准,以及几种理解它们的方法。先读n1570
-
尝试在 16 位系统上编译
printf("%u",sizeof(int));,然后在 32 位和 64 位系统上编译 ... :) -
"几乎所有编译器都使用 4 个字节作为 int" - 不正确。对于 64 位 Linux 目标,它是 8。“例如在 8 位 CPU 上,int 是 8 位。”也不正确 - 要求为 至少 16. 让
char、short和int大小都一样是没有意义的。这个问题没有什么价值,因为你可以谷歌它。 en.wikipedia.org/wiki/C_data_types。该标准根据最小宽度/范围和相对大小来定义它们(例如,int必须与short一样宽或更宽)。 -
@Clifford 谢谢!我用谷歌搜索过,但没有找到
-
你用什么搜索词? “c 数据类型大小” 似乎最明显。需要谷歌福。