Ir ao conteúdo
  • Cadastre-se

Dword c++?


eduardokazuo

Posts recomendados

Bom, eu estou com duvidas no tipo de variavel DWORD.

Perguntei no Yahoo e me disseram que é a mesma coisa que o unsigned long.

Agora fiquei em duvida...

Qual a diferença entre o unsigned long e o DWORD?

E em que casos eu poderia usar tanto um quanto o outro?

Eu poderia fazer por exemplo: int soma(DWORD a){ return a+a; }?

Obrigado desde já! ^_^

Link para o comentário
Compartilhar em outros sites

Primeiro de onde você tirou esse DWORD? Você está usando alguma biblioteca que define o tipo DWORD?

Enfim, quanto a sua dúvida, não, DWORD não é necessariamente unsigned long, DWORD só faz referência ao tamanho da variável, especificamente ela diz que é uma Double WORD, onde WORD se refere a um conjunto de 2 bytes logo DWORD é uma palavra de 32 bits.

Unsigned long por outro lado especifica que você tem uma variável do tipo long sem sinal, sendo que long não faz explicitamente uma declaração do tamanho da variável, a única coisa que ele menciona é que em qualquer implementação long tem que ser maior ou igual a int que por sua vez tem que ser maior ou igual a short.

Então ao usar essa DWORD provavelmente deve ter algum typedef identificando o que esse DWORD significa, se tiver um typedef unsigned long DWORD, então DWORD é só uma abreviação para unsigned long e esse seu código não funcionaria devidamente pois long é maior ou igual a int ainda mais, se int e long tivesse o mesmo tamanho DWORD está marcada como unsigned e assim valores muito altos seriam retornados como números negativos na sua função.

Link para o comentário
Compartilhar em outros sites

DWORD é uma palavra de tamanho dobrado, enquanto unsigned long é um número natural de tamanho dobrado.

Uma palavra em computação significa a profundidade da memória, a quantidade de bits que os registradores do sistema comportam. Os tamanhos de palavras mais comuns são 32 bits (4 bytes) e 64 bits (8 bytes). Uma DWORD é um dado com o dobro desse tamanho.

Um unsigned int é armazenado em uma palavra, enquanto um unsigned long int é armazenado em uma palavra de tamanho dobrado.

Espero ter ajudado.

ZaZ

Link para o comentário
Compartilhar em outros sites

Como eu disse, no mesmo lugar onde está a declaração dessa função ou então em algum header que o código dessa função de um #include deve ter um typedef que diz o que é esse DWORD. De qualquer forma DWORD é só um tipo de variável que tem um tamanho especificado como o dobro do tamanho de um WORD, já o tamanho de WORD depende da implementação, em alguns lugares pode ter 2 outros 4 e outros até 8 bytes de tamanho.

Provavelmente nesse caso deve ser um unsigned long já que ele representa um endereço de uma variável e provavelmente deve ser em um sistema de 32bits assim esse DWORD deve ser visto como um bloco de memória de 32 bits (4 bytes).

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!