类型所占字节数和机器字长及编译器有关系,所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSI / ISO 制订的):
sizeof(short int) <= sizeof(int)sizeof(int) <= sizeof(long int)short int至少应为 16位(2字节)long int至少应为 32位。
32位编译器
| 类型 | 字节长度 |
|---|---|
char |
1个字节 |
void *(指针变量) |
4个字节 |
short int |
2个字节 |
int |
4个字节 |
unsigned int |
4个字节 |
float |
4个字节 |
double |
8个字节 |
long |
4个字节 |
unsigned long |
4个字节 |
long long |
8个字节 |
64位编译器
| 类型 | 字节长度 |
|---|---|
char |
1个字节 |
void *(指针变量) |
8个字节 |
short int |
2个字节 |
int |
4个字节 |
unsigned int |
4个字节 |
float |
4个字节 |
double |
8个字节 |
long |
8个字节 |
unsigned long |
8个字节 |
long long |
8个字节 |
16位 编译器
| 类型 | 字节长度 |
|---|---|
char |
1个字节 |
void *(指针变量) |
2个字节 |
short int |
2个字节 |
int |
2个字节 |
unsigned int |
2个字节 |
float |
4个字节 |
double |
8个字节 |
long |
4个字节 |
unsigned long |
4个字节 |
long long |
8个字节 |