Pergunta

No Visual C++, um DWORD é apenas um comprimento não assinado que depende da máquina, da plataforma e do SDK.No entanto, como DWORD é uma palavra dupla (2 * 16), um DWORD ainda é de 32 bits em arquiteturas de 64 bits?

Foi útil?

Solução

Na verdade, em computadores de 32 bits, uma palavra é de 32 bits, mas o tipo DWORD é uma sobra dos bons velhos tempos dos 16 bits.

Para facilitar a portabilidade de programas para o sistema mais recente, a Microsoft decidiu que todos os tipos antigos não mudarão de tamanho.

Você pode encontrar a lista oficial aqui:http://msdn.microsoft.com/en-us/library/aa383751(VS.85).aspx

Todos os tipos dependentes de plataforma que mudaram com a transição de 32 bits para 64 bits terminam com _PTR (DWORD_PTR será de 32 bits no Windows de 32 bits e de 64 bits no Windows de 64 bits).

Outras dicas

É definido como:

typedef unsigned long       DWORD;

No entanto, de acordo com o MSDN:

Em plataformas de 32 bits, Long é sinônimo de int.

Portanto, DWORD é de 32 bits em um sistema operacional de 32 bits.Há uma definição separada para um DWORD de 64 bits:

typdef unsigned _int64 DWORD64;

Espero que ajude.

Não ...em todas as plataformas Windows, o DWORD é de 32 bits.LONGLONG ou LONG64 é usado para tipos de 64 bits.

Simples DWORD é de 32 bits WORD é de 16 bits -Edição

8 bits é um byte.2 bytes é uma palavra.Palavra dupla ou DWORD tem 4 bytes ou 2 palavras.

DWord é uma palavra dupla e uma palavra é 65535.Double Word seria então 65535 ^ 2 = 4294836225 ou ulong e seus 4 bytes de tamanho word são 2 bytes

E são 2 bytes para armazenar no disco rígido ou enviar pela internet.

:) palavra sobre moderno processadores é de 32 ou 64 bits.É simplesmente o comprimento do ponteiro de memória (que, por sua vez, é a capacidade da ALU).

Mas historicamente a "palavra" x86 tem 16 bits (em vez de 32).Assim, as bibliotecas da Microsoft que historicamente visam x86 definem DWORD como não assinado, ou seja,"tamanho do ponteiro da máquina".

Isso é tudo, crianças.Para referência futura, consulte Wikipédia.

Chame um longo, dword32, dword64...o que você quiser, mas um byte é de 8 bits uma palavra é de 2 bytes Uma DWORD (palavra dupla) é de 2 palavras Um qword (palavra quádrupla) é de 4 palavras

Em sistemas de 32 ou 64 bits, os aliases como LONG ou INT podem variar, mas um dword ainda é uma palavra dupla

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top