具有32位和64位代码的DWORD有多大?

时间:2008-09-02 12:50:26

标签: c++ winapi 64-bit dword

在Visual C ++中,DWORD只是一个unsigned long,它依赖于机器,平台和SDK。但是,由于DWORD是双字(即2 * 16),64位架构上的DWORD仍然是32位吗?

8 个答案:

答案 0 :(得分:56)

实际上,在32位计算机上,一个单词是32位的,但DWORD类型是16位旧时代的遗留物。

为了便于将程序移植到更新的系统,Microsoft决定所有旧类型都不会改变大小。

您可以在此处找到官方列表: http://msdn.microsoft.com/en-us/library/aa383751(VS.85).aspx

所有与平台相关的类型随着_PTR从32位到64位的转换而变化(DWORD_PTR在32位Windows上为32位,在64位Windows上为64位)。

答案 1 :(得分:15)

定义为:

typedef unsigned long       DWORD;

然而,根据MSDN:

  

在32位平台上,长期是   与int。同义。

因此,在32位操作系统上,DWORD是32位。 64位DWORD有一个单独的定义:

typdef unsigned _int64 DWORD64;

希望有所帮助。

答案 2 :(得分:6)

否......在所有Windows平台上,DWORD是32位。 LONGLONG或LONG64用于64位类型。

答案 3 :(得分:0)

简单 DWORD是32位 WORD为16位 编辑

答案 4 :(得分:-1)

8位是一个字节。 2个字节是一个单词。双字或DWORD是4个字节或2个字。

答案 5 :(得分:-2)

DWord是一个Double单词,一个单词是65535。则Double Word将是65535 ^ 2 = 4294836225或ulong,其4个字节的单词个字节是2个字节

这是2个字节,可存储在硬盘上或通过Internet发送。

答案 6 :(得分:-3)

现代处理器上的

:)字是32位还是64位。它只是内存指针的长度(依次是ALU的容量)。

但历史上x86“字”是16位(而不是32位)。因此,历史上以x86为目标的Microsoft库将DWORD定义为无符号长,即“机器指针大小”。

那是所有的孩子。有关日后参考,请参阅Wikipedia

答案 7 :(得分:-4)

拨打长,dword32,dword64 ......无论你想要什么,但是 一个字节是8位 一个字是2个字节 双字(双字)是2个字 一个qword(四字)是4个字

在32或64位系统上,像LONG或INT这样的别名可能会有所不同,但dword仍然是双字的