is related to machine word length and compiler: Therefore, the width of int,long int,short int may vary depending on the compiler. But there are several ironclad principles (Ansi/iso):
1 sizeof (short int) <=sizeof (int)
2 sizeof (int) <=sizeof (long int)
3 short int should be at least 16 bits (2 bytes)
4 a long int should be at least 32 bits.
Unsigned is an unsigned meaning.
For example:
16-bit compilers
Char:1 bytes
char* (i.e. pointer variable): 2 bytes
Short Int:2 bytes
Int:2 bytes
Unsigned int:2 bytes
Float:4 bytes
Double:8 bytes
Long:4 bytes
A long long:8 bytes
Unsigned long:4 bytes
32-bit compilers
Char:1 bytes
char* (i.e. pointer variable): 4 bytes (32-bit addressing space is 2^32, which is 32 bit, or 4 bytes. Similarly 64-bit compilers)
Short Int:2 bytes
Int:4 bytes
Unsigned int:4 bytes
Float:4 bytes
Double:8 bytes
Long:4 bytes
A long long:8 bytes
Unsigned long:4 bytes
64-bit compilers
Char:1 bytes
char* (i.e. pointer variable): 8 bytes
Short Int:2 bytes
Int:4 bytes
Unsigned int:4 bytes
Float:4 bytes
Double:8 bytes
Long:8 bytes
A long long:8 bytes
Unsigned long:8 bytes
In the C language, the number of bytes for a double, long, unsigned, int, char type data