Pointer precision types are an important set of polymorphic data types. They are integers which are the size of pointers and thus have pointer precision. The following table shows pointer precision types defined in the basetsd.h header file provided by Microsoft.
Type Name | 32-bit Compilation | 64-bit Compilation |
---|---|---|
DWORD_PTR | unsigned long | unsigned __int64 |
HALF_PTR | short | int |
INT_PTR | int | __int64 |
LONG_PTR | long | __int64 |
SIZE_T | unsigned long | unsigned __int64 |
SSIZE_T | long | __int64 |
UHALF_PTR | unsigned short | unsigned int |
UINT_PTR | unsigned int | unsigned __int64 |
ULONG_PTR | unsigned long | unsigned __int64 |