Dans Visual C ++, un DWORD est simplement un long non signé qui dépend de la machine, de la plate-forme et du SDK. Cependant, comme DWORD est un double mot (c'est-à-dire 2 * 16), un DWORD est-il toujours 32 bits sur des architectures 64 bits?
Réponses
Trop de publicités?En fait, sur les ordinateurs 32 bits d'un mot de 32 bits, mais le type DWORD, est un vestige de l'époque des 16 bits.
Afin de faciliter le port des programmes pour les systèmes plus récents, Microsoft a décidé de toutes les formes ne changent pas de taille.
Vous pouvez trouver la liste officielle ici: http://msdn.microsoft.com/en-us/library/aa383751(SV.85).aspx
Toutes la plate-forme des types dépendants qui a changé avec le passage de 32 bits à 64 bits de fin avec _PTR (DWORD_PTR sera de 32 bits sur Windows 32 bits et 64 bits sur Windows 64 bits).
Il est défini comme:
typedef unsigned long DWORD;
Cependant, selon le MSDN:
Sur les plates-formes 32 bits, long est synonyme d'int.
Par conséquent, DWORD est 32 bits sur un système d'exploitation 32 bits. Il existe une définition distincte pour un fichier DWORD 64 bits:
typdef unsigned _int64 DWORD64;
J'espère que cela pourra aider.
:) Le mot sur les processeurs modernes est soit 32 bits, soit 64 bits. C'est simplement la longueur du pointeur de mémoire (qui correspond à la capacité de l'ALU).
Mais historiquement x86 "mot" est de 16 bits (au lieu de 32). Ainsi, les bibliothèques Microsoft qui ciblent historiquement x86, définissent DWORD comme non signé long, c’est-à-dire "taille du pointeur de la machine".
C'est tous les enfants. Pour référence future, voir Wikipedia .