所占的字节数或位数和机器字长及编译器有关系:
所以,int,long int,short int的宽度都可能随编译器而异。但有几条铁定的原则(ANSIC/ISO制订的):
- sizeof(short int)<=sizeof(int)
- sizeof(int)<=sizeof(long int)
- short int至少应为16位(2字节)
- long int至少应为32位
unsigned 是无符号的意思。
关系如下表:
数据类型\编译器位数 | 16 | 32 | 64 |
---|---|---|---|
char | 1 | 1 | 1 |
char* | 2 | 4 | 8 |
short int | 2 | 2 | 2 |
int | 2 | 4 | 4 |
unsigned int | 2 | 4 | 5 |
float | 4 | 4 | 4 |
double | 8 | 8 | 8 |
long | 4 | 4 | 8 |
long long | 8 | 8 | 8 |
unsigned long | 4 | 4 | 8 |
网友评论