Possible Duplicate:
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'm using a 64-bit
machine.
$ 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 $
When I ran the following program, I got the sizeof(int)
as 4-bytes
.
#include <stdio.h> int main(void) { printf("sizeof(int) = %d bytes\n", (int) sizeof(int)); return 0; }
If I'm running a 16-
, 32-
and 64-
bit machine, then doesn't it mean that the size of an integer
is 16-
, 32-
and 64-
bit respectively?
In my machine, I found the WORD_BIT
is 32
. Shouldn't it be 64
on a 64-bit
machine?
$ getconf WORD_BIT 32 $
And, shouldn't the sizeof(int)
be 64-bits
(8 bytes
) in the above case?
So, the sizeof(int) simply implies the value of size of an integer. Whether it is a 32-bit Machine or 64-bit machine, sizeof(int) will always return a value 4 as the size of an integer.
Size of a pointer should be 8 byte on any 64-bit C/C++ compiler, but not necessarily size of int.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With