数据类型 LP64 ILP64 LLP64 ILP32 LP32
char 8 8 8 8 8
short 16 16 16 16 16
_int32 N/A 32 N/A N/A N/A
int 32 64 32 32 16
long 64 64 32 32 32
long long N/A N/A 64 N/A N/A
pointer 64 64 64 32 32
LP64,ILP64,LLP64是64位平台上的字长模型,ILP32和LP32是32位平台上的字长模型。
64位Windows采用的是LLP64数据模型。
64位UNIX/Linux/MacOS X采用的是LP64数据模型。
char 8 8 8 8 8
short 16 16 16 16 16
_int32 N/A 32 N/A N/A N/A
int 32 64 32 32 16
long 64 64 32 32 32
long long N/A N/A 64 N/A N/A
pointer 64 64 64 32 32
LP64,ILP64,LLP64是64位平台上的字长模型,ILP32和LP32是32位平台上的字长模型。
64位Windows采用的是LLP64数据模型。
64位UNIX/Linux/MacOS X采用的是LP64数据模型。
CPU的位数 >= 操作系统的位数 >= 编译器设定的int大小
对于支持SIMD指令集的CPU,比如MMX、SSE2/3/4等的,或者PowerPC指令的CPU,int显然不是最快的。因为那些CPU一个时钟周期能处理64位甚至128位整数。