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位Windows与Linux环境下32位数据类型的长度差异,强调了long在Win64下的32位长度以及size_t类型随CPU位数变化的特点,提醒开发者避免误用long并留意size_t的系统定义。
17万+

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



