Maison > développement back-end > C++ > « Long » est-il vraiment 64 bits sur Windows 64 bits ?

« Long » est-il vraiment 64 bits sur Windows 64 bits ?

DDD
Libérer: 2024-12-28 20:50:18
original
973 Les gens l'ont consulté

Is `long` Really 64-Bits on 64-Bit Windows?

Taille en bits de Long sur Windows 64 bits : un examen plus approfondi

La question de la taille de Long sur Windows 64 bits a a suscité une certaine confusion. Bien que la documentation suggère que long est effectivement de 64 bits dans cet environnement, la réalité est plus nuancée.

Dans le domaine des systèmes Unix, il existe diverses dispositions pour les tailles d'entiers et de pointeurs sur les plates-formes 64 bits, principalement ILP64. et LP64. Cependant, l'approche de Microsoft diffère avec LLP64.

ILP64 contre LP64

Type ILP64 LP64 LLP64
char 8 8 8
short 16 16 16
int 64 32 32
long 64 64 32
long long 64 64 64
pointer 64 64 64

Tous les systèmes Unix 64 bits modernes utilisent LP64, où long est de 64 bits. MacOS X et Linux entrent dans cette catégorie.

LLP64 et Windows 64 bits

Le schéma LLP64 de Microsoft donne la priorité à la recompilation des logiciels 32 bits sans modifications. Par conséquent, sur les systèmes Windows 64 bits :

  • long et int restent de taille 32 bits
  • De nouveaux types de données sont introduits pour les entiers 64 bits

Code neutre en matière de plate-forme

Pour atteindre un code neutre en matière de plate-forme code, il est recommandé d'utiliser les types du fichier C99 en-tête, qui fournit :

  • int8_t à int64_t pour les entiers signés
  • uintptr_t pour les entiers non signés pour stocker les pointeurs
  • intmax_t pour la plus grande taille d'entier sur la plateforme

En utilisant ces types dans votre code, vous pouvez écrire des applications indépendantes des tailles entières spécifiques sur différentes plates-formes.

Conclusion

Bien que long soit généralement de 64 bits sur les systèmes Unix, sur 64- Windows, il reste 32 bits en raison de l'approche LLP64 de Microsoft. En comprenant les différentes conventions de taille d'entier et en utilisant des types indépendants de la plate-forme, les développeurs peuvent créer du code compatible sur une large gamme de systèmes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal