2008-09-02 3 views
40

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

+6

A DWORD не зависит от машины, платформы и SDK. – 2013-07-16 17:40:08

+0

Это nitpick, но технически этот вопрос относится либо к C, либо к C++, возможно, лучше удалить тег C++ или добавить тег C, но я не уверен, какой из них лучше. – jrh 2017-12-26 21:05:20

ответ

51

На самом деле, на 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).

3

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

+0

это не имеет никакого отношения к Windows, это термин Intel – Abyx 2013-07-16 17:48:10

+2

@Abyx: typedef `DWORD` - это очень Windows. – rubenvb 2013-07-16 19:53:49

+2

@rubenvb, а почему он называется `DWORD`, а не что-то еще вроде` QBYTE` или `DUBWD`? – Abyx 2013-07-16 20:47:41

14

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

typedef unsigned long  DWORD; 

Тем не менее, в соответствии с MSDN:

На 32-битных платформах, долго является синонимом Int.

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

typdef unsigned _int64 DWORD64; 

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

-2

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

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

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

+1

(1) Это ссылка на неправильную страницу в Википедии. (2) Речь идет не о слове компьютерной архитектуры, а о типе `DWORD` Microsoft. – 2013-07-16 17:42:23

-4

Вызов длинный, dword32, dword64 ... все, что вы хотите, но байт составляет 8 бит слово является 2 байта двойное слово (двойное слово) есть 2 слова QWORD (четырехъядерный слово) является 4 слова

в системах 32 или 64-битных псевдонимы, как долго или INT может варьироваться, но до сих пор DWORD двойное слово

-1

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

 Смежные вопросы

  • Нет связанных вопросов^_^