Question

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, puisque DWORD est un double mot (soit 2 * 16), un DWORD est-il toujours en 32 bits sur les architectures 64 bits ?

Était-ce utile?

La solution

En fait, sur les ordinateurs 32 bits, un mot est de 32 bits, mais le type DWORD est un vestige du bon vieux temps du 16 bits.

Afin de faciliter le portage des programmes vers le système le plus récent, Microsoft a décidé que tous les anciens types ne changeraient pas de taille.

Vous pouvez trouver la liste officielle ici :http://msdn.microsoft.com/en-us/library/aa383751(VS.85).aspx

Tous les types dépendants de la plate-forme qui ont changé avec le passage de 32 bits à 64 bits se terminent par _PTR (DWORD_PTR sera 32 bits sur Windows 32 bits et 64 bits sur Windows 64 bits).

Autres conseils

Il est défini comme :

typedef unsigned long       DWORD;

Cependant, selon MSDN :

Sur les plates-formes 32 bits, Long est synonyme d'int.

Par conséquent, DWORD est en 32 bits sur un système d'exploitation 32 bits.Il existe une définition distincte pour un DWORD 64 bits :

typdef unsigned _int64 DWORD64;

J'espère que cela pourra aider.

Non ...sur toutes les plateformes Windows, DWORD est en 32 bits.LONGLONG ou LONG64 est utilisé pour les types 64 bits.

Le DWORD simple est de 32 bits est de 16 bits - édité

8 bits est un octet.2 octets est un mot.Le double mot ou DWORD fait 4 octets ou 2 mots.

DWord est un mot double et un mot vaut 65535.Le double mot serait alors 65535 ^ 2 = 4294836225 ou ulong et ses 4 octets en taille de mot sont de 2 octets

Et cela représente 2 octets à stocker sur le disque dur ou à envoyer via Internet.

:) mot sur moderne processeurs est soit 32 bits, soit 64 bits.Il s'agit simplement de la longueur du pointeur de mémoire (qui est à son tour la capacité de l'ALU).

Mais historiquement, le « mot » x86 est de 16 bits (au lieu de 32).Ainsi, les bibliothèques Microsoft qui ciblent historiquement x86 définissent DWORD comme étant long non signé, c'est-à-dire"taille du pointeur de la machine".

C'est tous les enfants.Pour référence future, voir Wikipédia.

Appelez un long, dword32, dword64...Quoi que vous vouliez, mais un octet est de 8 bits, un mot est de 2 octets, un DWORD (double mot) est de 2 mots un qword (quad word) est de 4 mots

Sur les systèmes 32 ou 64 bits, les alias comme LONG ou INT peuvent varier, mais un dword reste un double mot.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top