可能是重复问题:
int,long等变量的大小
int的大小是否取决于编译器和/或处理器?
什么决定了整数的sizeof?。
我使用的是64位
机器。
$ uname -m
x86_64
$ file /usr/bin/file
/usr/bin/file: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, stripped
$
当我运行以下程序时,我得到了sizeof(int)
为4字节
。
#include <stdio.h>
int main(void)
{
printf("sizeof(int) = %d bytes\n", (int) sizeof(int));
return 0;
}
如果我正在运行一台 16-
、32-
和 64-bit
的计算机,那么这是否意味着 integer
的大小分别为 16-
、32-
和 64-bit
?在我的计算机上,我发现
WORD_BIT
是 32
。在一个 64-bit
的机器上它不应该是 64
吗?$ getconf WORD_BIT
32
$
此外,在上述情况下,sizeof(int)
不应该是64位
(8字节
)吗?