在 WinAPI 中:
typedef unsigned long DWORD;
我认为DWORD,WORD ...是计算机中的基本数据类型,无论int,unsigned long ...最终在汇编中都会转换为DWORD,为什么要在这里转换为unsigned long?我不能在没有定义的情况下直接使用 DWORD 吗?
DWORD 是它定义的任何内容(在程序集中没有自动转换为特定宽度)。这个 typedef 是必需的,因为 WinAPI 接口都是用无符号长整数定义的,只要使用 DWORD。IOW,您需要此定义才能使用 API。
回答你的另一个问题。这个答案是否定的,没有定义就不能使用 DWORD。它不是编译器的内置类型。
Win32 API 的 DWORD 定义是固定的:http: //msdn.microsoft.com/en-us/library/aa383751 (VS.85).aspx
在 Windows API 和基于 x86 指令集的汇编语言中,DWORD 指定一个大小为 32 位的变量。所以是的,它通常是相同的大小。
你不能DWORD
在 C++ 中使用类型而不定义它,因为它不是核心语言的一部分。的类型定义DWORD
可能需要根据您的编译器和系统架构进行调整。显然,对于您的配置,该类型unsigned long
有 32 位,因此 DWORD 定义为unsigned long
.