How large is a DWORD with 32- and 64-bit code?

后端 未结 3 1122
终归单人心
终归单人心 2020-12-01 02:53

In Visual C++ a DWORD is just an unsigned long that is machine, platform, and SDK dependent. However, since DWORD is a double word (that is 2 * 16), is a DWORD still 32-bit

相关标签:
3条回答
  • 2020-12-01 03:23

    Actually, on 32-bit computers a word is 32-bit, but the DWORD type is a leftover from the good old days of 16-bit.

    In order to make it easier to port programs to the newer system, Microsoft has decided all the old types will not change size.

    You can find the official list here: http://msdn.microsoft.com/en-us/library/aa383751(VS.85).aspx

    All the platform-dependent types that changed with the transition from 32-bit to 64-bit end with _PTR (DWORD_PTR will be 32-bit on 32-bit Windows and 64-bit on 64-bit Windows).

    0 讨论(0)
  • 2020-12-01 03:28

    It is defined as:

    typedef unsigned long       DWORD;
    

    However, according to the MSDN:

    On 32-bit platforms, long is synonymous with int.

    Therefore, DWORD is 32bit on a 32bit operating system. There is a separate define for a 64bit DWORD:

    typdef unsigned _int64 DWORD64;
    

    Hope that helps.

    0 讨论(0)
  • 2020-12-01 03:31

    No ... on all Windows platforms DWORD is 32 bits. LONGLONG or LONG64 is used for 64 bit types.

    0 讨论(0)
提交回复
热议问题