Возможный дубликат:
размер int, long и т.д.
Зависит ли размер int от компилятора и/или процессора? Что определяет размер целого числа?
Я использую машину 64-bit
.
$ 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-bytes
.
#include <stdio.h>
int main(void)
{
printf("sizeof(int) = %d bytes\n", (int) sizeof(int));
return 0;
}
Если я запускаю разрядную машину 16-
, 32-
и 64-
, то разве это не означает, что размер integer
равен 16-
, 32-
и 64-
бит соответственно?
В моей машине я нашел WORD_BIT
is 32
. Разве это не должно быть 64
на машине 64-bit
?
$ getconf WORD_BIT
32
$
И не должен ли sizeof(int)
быть 64-bits
(8 bytes
) в приведенном выше случае?