2013-05-28 3 views
0

В соответствии с Windows Data Type оба DWORD и DWORD32 являются «32-разрядным целым без знака», за исключением IntSafe.h, а другое определено в BaseTsd.h. В чем разница или, может быть, преимущество в использовании одного над другим?Разница между DWORD и DWORD32

+0

Я уверен, что Windows DWORD всегда * 32-разрядное целое число без знака. DWORD соответствует API окон. –

ответ

2

API Windows полны десятилетий C #define и typedef обломки.

Что вы ищете, это некоторые из этих обломков. Возможно, в какой-то момент они подумали о том, что размер DWORD был масштабированным, а DWORD32 - нет.

Но эта надежда давно мертва. Они почти наверняка идентичны, и почти наверняка никогда не станут неидентичными.

Если вы где, используя то, что называется DWORD16 и DWORD64 по какой-либо причине, название DWORD32 будет вписываться в, или, если вы по какой-то другой причине, на самом деле хотите, чтобы подчеркнуть число битов в вашем DWORD32 типа, то может быть лучше идея. В противном случае выберите один, используйте его и игнорируйте другое.

0

Они идентичны. DWORD поддерживается для обратной совместимости с десятилетиями устаревшего кода и всегда 32-разрядный. DWORD32 - это тот же тип данных и просто явно указывает, что он 32-разрядный. DWORD32 был представлен одновременно с DWORD64 и DWORD_PTR, когда API обновлялся для поддержки 64-разрядной разработки.