В соответствии с Windows Data Type оба DWORD и DWORD32 являются «32-разрядным целым без знака», за исключением IntSafe.h, а другое определено в BaseTsd.h. В чем разница или, может быть, преимущество в использовании одного над другим?Разница между DWORD и DWORD32
ответ
API Windows полны десятилетий C #define
и typedef
обломки.
Что вы ищете, это некоторые из этих обломков. Возможно, в какой-то момент они подумали о том, что размер DWORD
был масштабированным, а DWORD32
- нет.
Но эта надежда давно мертва. Они почти наверняка идентичны, и почти наверняка никогда не станут неидентичными.
Если вы где, используя то, что называется DWORD16
и DWORD64
по какой-либо причине, название DWORD32
будет вписываться в, или, если вы по какой-то другой причине, на самом деле хотите, чтобы подчеркнуть число битов в вашем DWORD32
типа, то может быть лучше идея. В противном случае выберите один, используйте его и игнорируйте другое.
Они идентичны. DWORD
поддерживается для обратной совместимости с десятилетиями устаревшего кода и всегда 32-разрядный. DWORD32
- это тот же тип данных и просто явно указывает, что он 32-разрядный. DWORD32
был представлен одновременно с DWORD64
и DWORD_PTR
, когда API обновлялся для поддержки 64-разрядной разработки.
Я уверен, что Windows DWORD всегда * 32-разрядное целое число без знака. DWORD соответствует API окон. –