32位与64位的数据类型长度是不一样的,而且windows和linux也有些许区别,下面把64位下的数据长度列表如下(无符号unsigned和有符号的长度一样):
linux64 windows64 linux32 windows32
char 8 8 8 8
short 16 16 16 16
int 32 32 32 32
long 64 32 32 32
long long 64 64 64 64
size_t 64 64 32 32
需要注意的是long类型在win64下是32位,千万别搞错了。size_t类型随着CPU位数变化,也要注意。
总结:没事不要用long。size_t是系统类型,使用时心里要留意,不能认为它和unsigned int等同,否则当你想要以64位编译时warning就铺天盖地了。
本文详细对比了64位与32位操作系统下不同数据类型的长度,包括char、short、int、long、long long、size_t等,并指出了Windows与Linux系统之间的差异。特别提醒在64位Windows中long类型为32位,以及size_t类型的特殊性。
1724

被折叠的 条评论
为什么被折叠?



