Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

Ответ 2

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

typedef unsigned long       DWORD;

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

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

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

typdef unsigned _int64 DWORD64;

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

Ответ 3

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

Ответ 4

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

Ответ 5

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

Ответ 6

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

Ответ 7

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

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

Ответ 8

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

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

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

Ответ 9

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

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