thể trùng lặp:
size of int, long, etc
Does the size of an int depend on the compiler and/or processor?
What decides the sizeof an integer?Điều gì sẽ là sizeof (int) trên một máy tính 64-bit?
Tôi đang sử dụng một máy 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
$
Khi tôi chạy chương trình sau, tôi nhận được sizeof(int)
là 4-bytes
.
#include <stdio.h>
int main(void)
{
printf("sizeof(int) = %d bytes\n", (int) sizeof(int));
return 0;
}
Nếu tôi đang chạy một máy 16-
, 32-
và 64-
chút, sau đó không có nghĩa rằng kích thước của một integer
là 16-
, 32-
và 64-
chút tương ứng?
Trong máy của tôi, tôi thấy số WORD_BIT
là 32
. Không phải là 64
trên máy 64-bit
?
$ getconf WORD_BIT
32
$
Và, nên không phải là sizeof(int)
được 64-bits
(8 bytes
) trong trường hợp trên?
Tôi không phải là người C, nhưng tôi tin rằng kích thước của bất cứ điều gì ngoại trừ 'char' là trình biên dịch cụ thể, và nó cũng không nhất thiết phải là kích thước của một từ trên bộ xử lý. – Ryan
http://stackoverflow.com/questions/589575/size-of-int-long-etc – Perception
@minitech: char cũng là trình biên dịch cụ thể – Dani