數據類型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 都更改成使用這些新的類型。