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

在Visual C ++中,一个DWORD只是一个无符号长整数,与机器,平台和SDK相关。 但是,由于DWORD是一个双字(即2 * 16),在64位体系结构上还是32位的DWORD?

实际上,在32位计算机上,一个字是32位的,但是DWORDtypes是16位旧版本的剩余字节。

为了使程序更容易移植到新系统,微软已经决定所有旧的types都不会改变大小。

你可以在这里find官方列表: http : //msdn.microsoft.com/en-us/library/aa383751(VS.85).aspx

所有依赖于平台的types(从32位到64位的转换都以_PTR结束)(DWORD_PTR在32位Windows和64位Windows上将分别为32位和64位)。

它被定义为:

typedef unsigned long DWORD; 

但是,根据MSDN:

在32位平台上,long与int是同义的。

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

 typdef unsigned _int64 DWORD64; 

希望有所帮助。

没有…在所有Windows平台上DWORD是32位。 LONGLONG或LONG64用于64位types。

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

:)现代处理器上的字是32位或64位。 这只是内存指针的长度(这也是ALU的容量)。

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

这是所有的孩子。 为了将来参考见维基百科 。

调用long,dword32,dword64 …任何你想要的,但是一个字节是8位一个字是2个字节一个dword(双字)是2个字qword(四字)是4个字

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

Interesting Posts