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 |