This question already has answers here:
Why does the Win32-API have so many custom types?

(4个答案)


4年前关闭。




我不害怕承认我是C++新手,因此这似乎是一个愚蠢的问题,但是...。

我看到DWORD在代码示例中到处使用。当我查找DWORD的真正含义时,它显然只是一个无符号的int(0到4,294,967,295)。那么我的问题是,为什么我们要有DWORD?整数类型“unsigned int”没有给我们带来什么?它与可移植性和机器差异有关吗?

最佳答案

DWORD不是C++类型,而是在<windows.h>中定义的。

原因是DWORD具有Windows函数所依赖的特定范围和格式,因此如果您需要特定范围,请使用该类型。 (或者如他们所说的“在罗马时,就像罗马人一样。”。)对您来说,这恰好对应于unsigned int,但并非总是如此。为安全起见,无论何时可能需要DWORD,都应使用DWORD

例如,如果他们更改了unsigned int的范围或格式,则可以使用其他类型来代替DWORD来保持相同的要求,并且所有使用DWORD的代码都不是明智的选择。 (同样,他们可以确定DWORD需要为unsigned long long,将其更改,并且所有使用DWORD的代码都不是明智的选择。)

另请注意,unsigned int的范围不必为0到4,294,967,295。参见here

09-10 07:33
查看更多