web-dev-qa-db-fra.com

Quel est le type de mot point en C?

En parcourant du code source, j'ai trouvé une méthode dans un programme C qui prend des arguments des types Word, DWORD et PWORD. Je sais qu'ils se traduisent par des nombres non signés, mais pourquoi sont-ils appelés WORD?

20
Nealon

Taille des mots et types de données

Un mot est la quantité de données qu'une machine peut traiter simultanément. Cela s'inscrit dans l'analogie du document qui comprend des caractères (généralement huit bits) et des pages (de nombreux mots, valant souvent 4 ou 8 Ko) comme autres mesures de données. Un mot est un nombre entier d'octets par exemple, un, deux, quatre ou huit. Quand quelqu'un parle des "n-bits" d'une machine, il parle généralement de la taille de Word de la machine. Par exemple, lorsque les gens disent que le Pentium est une puce 32 bits, ils se réfèrent à sa taille Word, qui est de 32 bits ou quatre octets.

La taille des registres à usage général (GPR) d'un processeur est égale à sa taille Word. Les largeurs des composants dans une architecture donnée par exemple, le bus mémoire sont généralement au moins aussi larges que la taille Word. En règle générale, au moins dans les architectures prises en charge par Linux, l'espace d'adressage mémoire est égal à la taille Word [2]. Par conséquent, la taille d'un pointeur est égale à la taille de Word. En outre, la taille du type C long est égale à la taille Word, tandis que la taille du type int est parfois inférieure à celle de la taille Word. Par exemple, l'Alpha a une taille de mot 64 bits. Par conséquent, les registres, les pointeurs et le type long ont une longueur de 64 bits. Le type int, cependant, a une longueur de 32 bits. L'Alpha peut accéder et manipuler 64 bits, un mot à la fois.

Pour en savoir plus: http://www.makelinux.com/books/lkd2/ch19lev1sec2

28
Oscar

Word dans les API Windows signifie 2 octets.

Il était à l'origine utilisé pour faire référence à la taille du pointeur (comme dans un processeur avec une longueur de mot de 16 bits).
Les API Windows l'ont utilisé dans typedefs dans (et avant) Windows 3.1 (qui ne supportait que les machines 16 bits), donc la signification ne peut plus changer.

3
SLaks

Word provient probablement d'un code plus ancien et signifiait généralement 16 bits, tandis que DWORD signifie généralement 32 bits. Si vous n'êtes pas sûr, vous devriez vérifier votre code, car il doit être défini quelque part.

Word provient de la machine Word dont la taille dépendait du matériel.

2
Devolus