Pregunta

En Visual C++, un DWORD es simplemente un largo sin firmar que depende de la máquina, la plataforma y el SDK.Sin embargo, dado que DWORD es una palabra doble (es decir, 2 * 16), ¿un DWORD sigue siendo de 32 bits en arquitecturas de 64 bits?

¿Fue útil?

Solución

En realidad, en las computadoras de 32 bits una palabra es de 32 bits, pero el tipo DWORD es un vestigio de los viejos tiempos de los 16 bits.

Para facilitar la migración de programas al sistema más nuevo, Microsoft ha decidido que todos los tipos antiguos no cambiarán de tamaño.

Puedes encontrar la lista oficial aquí:http://msdn.microsoft.com/en-us/library/aa383751(VS.85).aspx

Todos los tipos dependientes de la plataforma que cambiaron con la transición de 32 bits a 64 bits terminan con _PTR (DWORD_PTR será de 32 bits en Windows de 32 bits y de 64 bits en Windows de 64 bits).

Otros consejos

Se define como:

typedef unsigned long       DWORD;

Sin embargo, según MSDN:

En plataformas de 32 bits, Long es sinónimo de int.

Por lo tanto, DWORD es de 32 bits en un sistema operativo de 32 bits.Hay una definición separada para un DWORD de 64 bits:

typdef unsigned _int64 DWORD64;

Espero que ayude.

No ...en todas las plataformas Windows, DWORD es de 32 bits.LONGLONG o LONG64 se utiliza para tipos de 64 bits.

DWORD simple es 32 bits La palabra es 16 bits

8 bits es un byte.2 bytes es una palabra.La palabra doble o DWORD son 4 bytes o 2 palabras.

DWord es una palabra doble y una palabra es 65535.La palabra doble sería entonces 65535^2 = 4294836225 o ulong y sus 4 bytes de tamaño de palabra son 2 bytes

Y estos son 2 bytes para almacenar en el disco duro o enviar a través de Internet.

:) palabra sobre moderno procesadores es de 32 bits o de 64 bits.Es simplemente la longitud del puntero de memoria (que a su vez es la capacidad de ALU).

Pero históricamente la "palabra" x86 es de 16 bits (en lugar de 32).Por lo tanto, las bibliotecas de Microsoft que históricamente apuntan a x86 definen DWORD como largo sin firmar, es decir,"tamaño del puntero de la máquina".

Eso es todo niños.Para referencia futura ver Wikipedia.

Llame a un largo, dword32, dword64...Lo que quiera, pero un byte es 8 bits, una palabra es 2 bytes, una dWord (palabra doble) es 2 palabras una QWORD (Palabra cuádruple) es 4 palabras

En sistemas de 32 o 64 bits, los alias como LONG o INT pueden variar, pero una palabra dword sigue siendo una palabra doble.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top