Type DWORD en C/C++ ¿qué es?

Resuelto
little_titi Mensajes publicados 250 Estado Miembro -  
 crazydieter -
Hola,

Quisiera saber a qué corresponde una variable de tipo DWORD en C/C++? ¿Para qué sirve?

¡Gracias!

--
La velocidad de la luz es más rápida que la del sonido, ¡eso explica por qué algunos parecen tan brillantes antes de parecer tontos!
Configuración: Windows XP Firefox 2.0.0.17

3 respuestas

Char Snipeur Mensajes publicados 10112 Fecha de registro   Estado Colaborador Última intervención   1 331
 
DWORD, debe ser doble palabra, corresponde a una variable de cierta cantidad de bytes o bits.
Creo que la palabra son 4 bytes, el doble palabra debe ser de 8.
Sirve para conocer el tamaño de la variable independientemente de la implementación de C.
--
¡Saludos! antes creía, ahora estoy seguro.Jesucristo
Char Snipeur
17
little_titi Mensajes publicados 250 Estado Miembro 7
 
¡Hola de nuevo, Char sniper! ¿Cómo estás? ;)

He visto que DWORD es similar a longWord, que es una palabra de 32 bits sin signo. Y también creo que la D corresponde a doble, como dices. Aparentemente, estos tipos se utilizan en aplicaciones para Windows. Bueno, según lo que he entendido.

¡Gracias por la información! ¡Hasta pronto!


--
La velocidad de la luz es más rápida que la del sonido, ¡por eso algunos parecen tan brillantes antes de parecer tontos!
0
toto
 
Hola

Cuando una palabra como DWORD no es del estándar C, significa que está definida en algún .h. Solo tienes que hacer clic derecho en DWORD y elegir "IR a la definición de DWORD".
VC++ te lleva a windef.h en la línea:
typedef unsigned long DWORD;
14
little_titi Mensajes publicados 250 Estado Miembro 7
 
¡De acuerdo, gracias! Acabo de mirar lo que me dijiste, ¡efectivamente se puede ver así!
--
La velocidad de la luz siendo más rápida que la del sonido, explica por qué algunos parecen tan brillantes antes de parecer tontos.
0
John
 
Solo por la forma... Octeto: 1 octeto. ¿Vamos bien hasta aquí?
Palabra: 2 octetos.
DWord: 4 octetos.
D: Doble
Sin relación con las aplicaciones de Windows.
Y para el resto, está Google. No hace falta programar si no son capaces de saber eso, ni de conseguir buscarlo en caso contrario.
6
Truth
 
Eh... no lean lo que escribe John, dice tonterías.
Para mí, tengo:
typedef unsigned long DWORD;
Y que yo sepa, un long nunca ha sido de 2 bytes, sino más bien de 4 u 8 bytes (dependiendo de la arquitectura de la máquina: cf http://www.cppfrance.com/forum/sujet-VAUT-SIZEOF-LONG_1078951.aspx).
0
fiddy Mensajes publicados 441 Fecha de registro   Estado Colaborador Última intervención   1 847
 
Verdad,

No estoy de acuerdo contigo. Además, si lees bien, John no dijo que DWORD fuera de 2 bytes, sino que dijo que era de 4.
Añadiré mi complemento:
DWORD no es nativo en C, es un tipo definido en el encabezado windows.h. Puede ser un unsigned long, pero no necesariamente, podría ser por qué no un unsigned long long (en C99). Además, no hablamos de byte para un tipo, sino más bien de byte (sabiendo que en C, los bytes tienen al menos 8 bits).
Por lo tanto, el tamaño del DWORD depende de varios criterios.
1
Hugooguh
 
Dado que DWORD está definido en windows.h, me cuesta ver cómo podría utilizarse en un sistema donde un byte no tiene 8 bits... De hecho, es solo un legado de la época en que C tenía que adaptarse a muchos procesadores diferentes y exóticos, pero hoy en día un procesador con un byte diferente de 8 bits es bastante raro...
0
Anonymous
 
@Truth
1 bit [es] != 1 octeto [es] == 1 byte [ing] == 8 bits
Y eso, sin importar la máquina. Es solo una cuestión de lenguaje, pero es bastante importante si queremos ser bien entendidos.
Es el clásico caso. Al final, ni siquiera sabemos de qué estamos hablando...

@Hugooguh
Estoy de acuerdo.
0
fiddy Mensajes publicados 441 Fecha de registro   Estado Colaborador Última intervención   1 847
 
Anonymous,
No byte no es igual a octeto...
0