Возможный дубликат:
размер 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) в приведенном выше случае?