Насколько велика DWORD с 32- и 64-битным кодом?

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

46
02 сент. '08 в 15:50
источник поделиться
9 ответов

Собственно, на 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).

58
02 сент. '08 в 16:02
источник

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

typedef unsigned long       DWORD;

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

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

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

typdef unsigned _int64 DWORD64;

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

15
02 сент. '08 в 15:55
источник

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

6
02 сент. '08 в 15:55
источник

Большое спасибо за ответы до сих пор, но проблема все еще не решена, указав DWORD как LONG64, DWORD64 и скомпилировав приложение как 64-битное. всегда есть одно число, забытое компилятором, или так кажется.

0
16 июня '19 в 23:02
источник

Простое DWORD - 32 бита, WORD - 16 битов -edited

0
01 мая '19 в 20:08
источник

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

-1
14 окт. '13 в 5:47
источник

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

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

-2
18 дек. '18 в 12:13
источник

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

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

Что все дети. В дальнейшем обратитесь к Wikipedia.

-3
02 сент. '08 в 16:02
источник

Вызвать длинный, dword32, dword64... все, что хотите, но байт - 8 бит слово равно 2 байтам dword (двойное слово) - 2 слова qword (quad word) - 4 слова

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

-4
16 июля '13 в 20:27
источник

Посмотрите другие вопросы по меткам или Задайте вопрос