根据Windows Data Type,除了IntSafe.h之外,DWORD和DWORD32都是“32位无符号整数”,另一个是在BaseTsd.h中定义的。使用一个而不是另一个有什么区别或优势?
答案 0 :(得分:2)
Windows API充满了数十年的C #define
和typedef
碎片。
你正在看的是一些碎片。也许在某些时候他们考虑过缩放DWORD
,而DWORD32
不会。{/ p>
但这种希望早已消亡。它们几乎肯定是相同的类型,几乎肯定永远不会变得不相同。
如果您出于某种原因使用名为DWORD16
和DWORD64
的内容,名称DWORD32
将适合,或者如果您出于其他原因确实想强调位数在您的DWORD32
类型中,该类型可能是更好的主意。否则,选择一个,使用它,然后忽略另一个。
答案 1 :(得分:1)
他们是完全相同的。维护DWORD
是为了与数十年的遗留代码向后兼容,并且始终是32位。 DWORD32
是相同的数据类型,只是明确指出它是32位。在更新API以支持64位开发时,DWORD32
和DWORD64
被引入的同时引入了DWORD_PTR
。