不同平台下C\C++数值数据类型长度如下:
其中long类型和指针类型需要特别注意,编写跨平台的软件时尽量不要使用long类型,或者需要对long类型做特殊处理。
原因:
编译器的数据模型
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模型