Type DWORD en C/C++ c'est quoi???

Résolu/Fermé
little_titi Messages postés 242 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 23 novembre 2009 - 7 oct. 2008 à 10:16
 crazydieter - 2 août 2016 à 22:30
Bonjour,

Je souhaiterai savoir à quoi correspond une variable de type DWORD en C/C++ ?ça sert à quoi?

Merci!

3 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
7 oct. 2008 à 10:54
DWORD, ça doit être double mot, ça correspond à une variable d'un certain nombre d'octet ou de bit.
Je crois que le mot et de 4 octet, le double mot doit être de 8.
ça sert à connaître la taille de la variable indépendamment de l'implémentation du C.
17
little_titi Messages postés 242 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 23 novembre 2009 7
7 oct. 2008 à 11:13
Tiens re bonjour Char sniper! Comment va?;)

J'ai vu ke DWORD était similaire à longWord qui était un mot de 32 bits non signé. et je pense aussi que le D correspond à double comme tu dis. Apparemment ces types sont utilisés dans le cadre d'application pour windows. enfin d'après ce que j'ai cru comprendre.

Merci pour l'info!@ bientot!

0
Bonjour

Quand un mot comme DWORD n'est pas du C standard, c'est qu'il est défini dans un .h quelconque. Il suffit de faire un clic droit sur DWORD et de choisir "GOTO definition of DWORD".
VC++ t'envoie dans windef.h à la ligne :
typedef unsigned long DWORD;
14
little_titi Messages postés 242 Date d'inscription lundi 31 mars 2008 Statut Membre Dernière intervention 23 novembre 2009 7
7 oct. 2008 à 11:56
Oki merci ! je viens de regarder ce que tu m'as dis, effectivement on peut le voir comme ça!
0
Juste pour la forme... Octet : 1 octet. Ca va jusque là ?
Word : 2 octets.
DWord : 4 octets.
D : Double
Aucun rapport avec les applications Windows.
Et pour le reste, il y a google. Pas la peine de coder si vous êtes incapables de savoir ça, ni de réussir à le chercher dans le cas contraire.
6
Euh... ne lisez pas ce qu'écrit John, il dit des peanuts.
Pour moi, j'ai :
typedef unsigned long DWORD;
Et à ce que je sache, un long n'a jamais fait 2 octets mais plutôt 4 ou 8 octets (suivant l'architecture de la machine : cf http://www.cppfrance.com/forum/sujet-VAUT-SIZEOF-LONG_1078951.aspx).
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
2 janv. 2012 à 11:23
Truth,

Je ne suis pas d'accord avec toi. De plus si tu lis bien John n'a pas dit que DWORD faisait 2 octets, mais il a dit 4.
Je rajoute mon complément :
DWORD n'est pas natif en C, c'est un type défini dans le header windows.h. Il peut valoir un unsigned long, mais pas forcément, cela pourrait être pourquoi pas unsigned long long (en C99). De plus, on ne parle pas d'octet pour un type mais plutôt de byte (sachant qu'en C, les bytes font au moins 8 bits).
La taille du DWORD, dépend donc de pas mal de critères.
1
Vu que DWORD est défini dans windows.h, je vois mal comment il pourrait être utilisé dans un système où un byte ne fait pas 8 bits... En fait, c'est juste un héritage du temps où le C devait s'adapter à beaucoup de processeurs différents et exotiques, mais aujourd'hui un processeur avec un byte différent de 8 bits c'est assez rare...
0
@Truth
1 bit [fr/eng] != 1 octet [fr] == 1 byte [eng] == 8 bits
Et ce, peu importe la machine. Ce n'est qu'une question de langage mais c'est quand même important si on veut bien se faire comprendre.
C'est le coup classique. A force, on ne sait même plus de quoi on parle...

@Hugooguh
Je suis d'accord.
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
20 sept. 2012 à 22:37
Anonymous,
Non byte n'est pas égal à octet...
0