On the size of the Interger types

strict warning: Only variables should be passed by reference in /homepages/34/d93266176/htdocs/el-badawy/modules/book/book.module on line 559.

By the Integer types we mean one of short, int, long, and long long (and their unsigned versions).

The C standard doesn't specify how many bytes an integer type should take, only that short <= int <= long <= long long.

Here are some values from current compilers

short int long long long
gcc 3.3.4 / Solaris 8 / Sparc 32-bit 2 4 4 8
gcc 4.x / Linux 2.6.x / Core 2 Duo 64-bit 2 4 8 8
MS Visual C++ 2008 Express Edition / Vista Business 64-bit / Core 2 Quad 64-bit 2 4 4 8