和char类型有关。c认为char的长度为1字节,一般char为8位,long32位,则long为4字节。但有些特殊系统中char可能不为8位,比如说16位,则32位long占2个字节。
long为四个字节,一个字节占8位,因此四个字节占32位
printf("%ld %ld %ld %ld",sizeof(int),sizeof(char),sizeof(long),sizeof(short));试一试,就全都知道了,long占4个字节