Jaki powinien być sizeof (int) na komputerze 64-bitowym? [duplikować]
Możliwy duplikat:
rozmiar int, long, itp
Czy rozmiar int zależy od kompilatora i / lub procesora?
Co decyduje o wielkości liczby całkowitej?
Używam64-bit
maszyna.
<code>$ 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 $ </code>
Kiedy uruchomiłem następujący program, dostałemsizeof(int)
tak jak4-bytes
.
<code>#include <stdio.h> int main(void) { printf("sizeof(int) = %d bytes\n", (int) sizeof(int)); return 0; } </code>
Jeśli biegam16-
, 32-
i64-
bitowa maszyna, to nie znaczy, że ma rozmiarinteger
jest16-
, 32-
i64-
odpowiednio?
W mojej maszynie znalazłemWORD_BIT
jest32
. Nie powinno tak być64
na64-bit
maszyna?
<code>$ getconf WORD_BIT 32 $ </code>
I nie powiniensizeof(int)
być64-bits
(8 bytes
) w powyższym przypadku?