Maison >développement back-end >C++ >Pourquoi le 64 bits « long » n'est-il pas disponible sur Windows 64 bits ?

Pourquoi le 64 bits « long » n'est-il pas disponible sur Windows 64 bits ?

DDD
DDDoriginal
2025-01-01 04:43:10951parcourir

Why Isn't 'long' 64 Bits on 64-bit Windows?

La taille en bits de « long » dans Windows 64 bits

La question se pose : pourquoi « long » n'est-il pas 64 bits sur 64 Des machines à bits comme Windows ? Cet article se penche sur l'histoire et les implications du dimensionnement des entiers sur différentes plates-formes.

Historique du dimensionnement des entiers

Dans le monde Unix, deux arrangements majeurs de taille entière pour 64- des plates-formes de bits ont émergé : ILP64 (int, long, les pointeurs sont en 64 bits) et LP64 (long, les pointeurs sont en 64 bits). ILP64 a été abandonné au profit de LP64, qui est devenu la norme pour les systèmes Unix 64 bits modernes comme macOS X et Linux.

Le schéma LLP64 de Microsoft

Microsoft utilise LLP64 ( long long, les pointeurs sont en 64 bits) pour Windows 64 bits, permettant la recompilation de logiciels 32 bits sans changements. Cependant, cela diffère des autres plates-formes 64 bits et nécessite des ajustements de code supplémentaires pour exploiter les capacités 64 bits. -plate-forme, la norme C99 fournit le paramètre en-tête, proposant des types entiers spécifiques à la plate-forme : int8_t, int16_t, int32_t, int64_t, uintptr_t, intmax_t. L'utilisation de ces types garantit que votre application peut s'adapter à différentes tailles d'entiers.

Considérations pour Windows

Comme Windows utilise LLP64, il est crucial de noter que « long » reste 32. bits sur les machines 64 bits. Cela nécessite d'être prudent lors de l'utilisation de types de systèmes, qui peuvent s'écarter des types d'entiers neutres par rapport à la plate-forme.

Conclusion

Comprendre les nuances du dimensionnement des entiers sur différentes plates-formes est essentiel pour développer logiciel multiplateforme. L'utilisation de types entiers indépendants de la plate-forme de et une manipulation minutieuse des types de systèmes peut aider à garantir la portabilité du code et à éviter d'éventuels problèmes de taille entière.

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!

Déclaration:
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