32位和64位代码的DWORD有多大? VisualC++中的dPoT只是一个无符号的长,即机器、平台和SDK依赖。然而,由于DWORD是一个双字(即2*16),在64位体系结构上DWORD仍然是32位吗?
否。。。在所有Windows平台上,DWORD为32位。LONGLONG或LONG64用于64位类型。其定义为:32位和64位代码的DWORD有多大? VisualC++中的dPoT只是一个无符号的长,即机器、平台和SDK依赖。然而,由于DWORD是一个双字(即2*16),在64位体系结构上DWORD仍然是32位吗?,c++,winapi,64-bit,dword,C++,Winapi,64 Bit,Dword,否。。。在所有Windows平台上,DWORD为32位。LONGLONG或LONG64用于64位类型。其定义为: typedef unsigned long DWORD; 然而,根据MSDN: 在32位平台上,long是 与int同义 因此,DWORD在32位操作系统上是32位的。64位DWORD有一个单独的定义: typdef unsigned _int64 DWORD64; 希望有帮助。事实上,在32位计算机上,单词是32位的,但DWORD类型是16位的好日子遗留下来的 为了
typedef unsigned long DWORD;
然而,根据MSDN:
在32位平台上,long是
与int同义
因此,DWORD在32位操作系统上是32位的。64位DWORD有一个单独的定义:
typdef unsigned _int64 DWORD64;
希望有帮助。事实上,在32位计算机上,单词是32位的,但DWORD类型是16位的好日子遗留下来的 为了更容易地将程序移植到较新的系统,微软决定所有的旧类型都不会改变大小 您可以在此处找到官方列表:
所有与平台相关的类型,随着32位到64位的C++语言的转换而改变(dWorddpPTR将在32位窗口上32位,在64位窗口上为64位)。dWord不是机器、平台,也不是依赖于SDK的。这是一种挑剔,但技术上,这个问题适用于C或C++,删除C++标签或添加C标签可能更好,但我不确定哪个更好。它与Windows无关,它是英特尔。term@Abyx:typedef
DWORD
非常适合Windows。@rubenvb,哦,为什么它被称为DWORD
,而不是像QBYTE
或DUBWD
这样的东西?实际的范围已经列出了。@LaurieStearn我认为这篇文章是关于微软编译器内部使用的数据类型,而不是像DWORD
这样的winapi数据类型。是的,答案链接中的文章现在的范围是:Quote:DWORD:32位无符号整数。范围为0到4294967295十进制。DWORD在windows库中等于“无符号长”