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就铺天盖地了。
原文地址:http://blog.youkuaiyun.com/avagrant158/article/details/5992192

本文详细对比了64位与32位操作系统下不同数据类型的长度,包括char、short、int、long、long long、size_t等,并强调了long类型在Windows 64位系统中为32位以及size_t类型的特性。
17万+

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



