具有32位和64位代码的DWORD有多大?
时间:2020-03-05 18:46:24 来源:igfitidea点击:
在Visual C ++中,DWORD只是一个无符号的长整数,它取决于计算机,平台和SDK。但是,由于DWORD是双字(即2 * 16),因此DWORD在64位体系结构上是否仍为32位?
解决方案
回答
在所有Windows平台上,否... DWORD为32位。 LONGLONG或者LONG64用于64位类型。
回答
它定义为:
typedef unsigned long DWORD;
但是,根据MSDN:
On 32-bit platforms, long is synonymous with int.
因此,在32位操作系统上,DWORD为32位。对于64位DWORD,有一个单独的定义:
typdef unsigned _int64 DWORD64;
希望能有所帮助。
回答
:)现代处理器上的word是32位或者64位。它只是内存指针的长度(反过来就是ALU的容量)。
但是历史上x86"字"是16位(而不是32位)。因此,过去以x86为目标的Microsoft库将DWORD定义为无符号长(即"机器指针大小")。
那是所有的孩子。有关将来的参考,请参阅Wikipedia。
回答
实际上,在32位计算机上,一个单词是32位,但是DWORD类型是16位过去的遗留物。
为了更容易将程序移植到较新的系统,Microsoft决定所有旧类型都不会更改大小。
我们可以在此处找到官方列表:
http://msdn.microsoft.com/zh-CN/library/aa383751(VS.85).aspx
所有从平台到平台的类型都随着_PTR而从32位转换为64位而改变(DWORD_PTR在32位Windows上为32位,在64位Windows上为64位)。