一种说法,整型所占空间大小和CPU相关
但是 MinGW 的64 位gcc编译器下,long 是32位的。查了资料,原来C标准没有规定long必须是64位的。
C标准只规定了 int 的长度不低于 short,long 的长度不低于 int。实际上,C保证short至少有16位长,long至少有32位长,long long 至少64位长。
#include <stdio.h>
#define SZ(t) printf("sizeof("#t"):\t%zd\n", sizeof(t));
int main(int argc, char * argv[]){
SZ(char);
SZ(short);
SZ(int