Оба используются для хранения адресов и выполнения арифметических указателей, оба определены в WinAPI, когда следует использовать uintptr_t
(cstdint) против DWORD_PTR
(Windows.h)? Оба 32bits и 64bits в x86 и x86_64 соответственноИспользование uintptr_t vs DWORD_PTR
DWORD_PTR
являетсяunsigned long
типа, используемым для точности указателя. Он используется при наведении указателя на типunsigned long
для выполнения арифметики указателя.DWORD_PTR
также широко используется для общих 32-битных параметров, которые были расширены до 64 бит в 64-разрядной Windows.
Я не хочу, чтобы мой код был портативным, я застрял в WinAPI. Какой тип наилучшего варианта использования?
Я никогда не использую typedefs Windows, если напрямую не работает с функциями Windows API. И даже тогда я в конечном итоге использую 'reinterpret_cast'. – camelCase
Я бы выбрал 'uintptr_t', хотя бы потому, что это не SCREAM AT YOU. И за то, что «DWORD» - это ложь в 64 бита, а код, который вам лежит, ужасен. («sizeof (DWORD) байтов должно быть достаточно для всех» ...) – molbdnilo