数据类型spa |
LP64设计 |
ILP64指针 |
LLP64ci |
ILP32编译器 |
LP32it |
char编译 |
8table |
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位平台上的字长模型。
LP64意思是long和pointer是64位,ILP64指int,long,pointer是64位,LLP指long long和pointer是32-bit的。ILP32指int,long和pointer是32位的,LP32指long和pointer是32位的。
对于特定的精度,您可使用固定精度的数据类型。无论处理器的词大小如何,它们的大小都是一致的。大多数这些类型都在它们的名称中包含精度,能够从下面的表中看出:
表 1. 固定精度的数据类型 | |
类型 | 定义 |
DWORD32 |
32 位无符号整数 |
DWORD64 |
64 位无符号整数 |
INT32 |
32 位有符号整数 |
INT64 |
64 位有符号整数 |
LONG32 |
32 位有符号整数 |
LONG64 |
64 位有符号整数 |
UINT32 |
无符号 INT32 |
UINT64 |
无符号 INT64 |
ULONG32 |
无符号 LONG32 |
ULONG64 |
无符号 LONG64 |
此外,当您须要数据类型的精度随着处理器词大小变化时,请使用指针精度数据类型。这些类型又称为“多态”数据类型。这些类型一般以 _PTR 后缀结尾,以下面的表格所示:
表 2. 指针精度的数据类型 | |
类型 | 定义 |
DWORD_PTR |
指针精度的无符号长类型 |
HALF_PTR |
指针大小的一半。用于包含一个指针和两个小型字段的结构中 |
INT_PTR |
指针精度的有符号整型 |
LONG_PTR |
指针精度的有符号长类型 |
SIZE_T |
指针能够引用的最大字节数。用于必须跨指针的整个范围的计数 |
SSIZE_T |
有符号 SIZE_T |
UHALF_PTR |
无符号 HALF_PTR |
UINT_PTR |
无符号 INT_PTR |
ULONG_PTR |
无符号 LONG_PTR |
LPARAM |
与 LONG_PTR 为同义词,(在WTypes.h 中定义) |
WPARAM |
与 UINT_PTR 为同义词,(在 WTypes.h 中定义) |
经过整数参数传递参数或上下文信息的全部 Win32 API 都更改成使用这些新的类型。