不同平台下C\C++数值数据类型长度如下:

其中long类型和指针类型需要特别注意,编写跨平台的软件时尽量不要使用long类型,或者需要对long类型做特殊处理。

【变量长度】int、long、short等在windows和linux/ 32位和64位下的长度(long long 才能保证64位)_c++

原因:

编译器的数据模型

Datetype  LP64   ILP64   LLP64   ILP32    LP32

char           8          8         8            8          8

short          16       16       16           16        16

int               32       64       32           32        16

long            64       64       32           32         32 

long long    64

pointer        64       64        64           32        32

一般情况下windows64位一般使用LLP64模型

64位Unix,Linux使用的是LP64模型