C中的基本数据类型长度和编译器相关,同一种数据类,使用不同的编译器编译时,其长度是不同的,但有几条铁定的原则(ANSI/ISO制订的):
1 sizeof(short int)<=sizeof(int)
2 sizeof(int)<=sizeof(long int)
3 short int至少应为16位(2字节)
4 long int至少应为32位。
16/32/64位编译器下各基本数据类型长度
数据类型 | 16位 | 32位 | 64位 | 格式化输出 |
char | 1 | 1 | 1 | 字符:%c 整形:%d |
short int | 2 | 2 | 2 | %d 无符号:%u %hx |
int | 2 | 4 | 4 | %d 无符号:%u %x |
long | 4 | 4 | 8 | %ld 无符号:%lu %lx |
long long | 8 | 8 | 8 | %lld 无符号:%lld %l |