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