类型所占字节数和机器字长及编译器有关系,所以,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个字节 |