Насколько велика DWORD с 32- и 64-битным кодом? - PullRequest
45 голосов
/ 02 сентября 2008

В Visual C ++ DWORD - это длина без знака, зависящая от машины, платформы и SDK. Однако, поскольку DWORD является двойным словом (то есть 2 * 16), является ли DWORD по-прежнему 32-разрядным на 64-разрядных архитектурах?

Ответы [ 8 ]

56 голосов
/ 02 сентября 2008

На самом деле, на 32-битных компьютерах слово является 32-битным, но тип DWORD является пережитком старых добрых 16-битных дней.

Чтобы упростить перенос программ на более новую систему, Microsoft решила, что все старые типы не изменят размер.

Официальный список вы можете найти здесь: http://msdn.microsoft.com/en-us/library/aa383751(VS.85).aspx

Все платформо-зависимые типы, которые изменились при переходе с 32-разрядного на 64-разрядное, заканчиваются _PTR (DWORD_PTR будет 32-разрядным в 32-разрядной Windows и 64-разрядной в 64-разрядной Windows).

15 голосов
/ 02 сентября 2008

определяется как:

typedef unsigned long       DWORD;

Однако, согласно MSDN:

На 32-битных платформах long синоним int.

Следовательно, DWORD является 32-разрядным в 32-разрядной операционной системе. Для 64-битного DWORD существует отдельное определение:

typdef unsigned _int64 DWORD64;

Надеюсь, это поможет.

6 голосов
/ 02 сентября 2008

Нет ... на всех платформах Windows DWORD составляет 32 бита. LONGLONG или LONG64 используется для 64-битных типов.

0 голосов
/ 01 мая 2019

Простой DWORD 32 бит СЛОВО 16 бит -edited

0 голосов
/ 18 декабря 2018

DWord является двойным словом, и слово равно 65535. Тогда двойное слово будет равно 65535 ^ 2 = 4294836225 или ulong, а его слово размером 4 байта равно 2 байта

И это 2 байта для хранения на жестком диске или отправки через Интернет.

0 голосов
/ 14 октября 2013

8 бит - это байт. 2 байта это слово. Двойное слово или DWORD составляет 4 байта или 2 слова.

0 голосов
/ 16 июля 2013

Называй долго, dword32, dword64 ... как хочешь, но байт 8 бит слово 2 байта меч (двойное слово) - 2 слова qword (четверное слово) - 4 слова

В 32 или 64-битных системах псевдонимы типа LONG или INT могут различаться, но слово dword по-прежнему является двойным словом

0 голосов
/ 02 сентября 2008
Слово

:) на современных процессорах является 32-разрядным или 64-разрядным. Это просто длина указателя памяти (которая в свою очередь является емкостью ALU).

Но исторически x86 "слово" составляет 16 бит (вместо 32). Таким образом, библиотеки Microsoft, которые исторически нацелены на x86, определяют DWORD как unsigned long, то есть «размер указателя машины».

Это все дети. Для дальнейшего использования см. Википедия .

...