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

Le terme « long » est-il vraiment 64 bits sur Windows 64 bits ?

DDD
Libérer: 2025-01-01 04:50:10
original
191 Les gens l'ont consulté

Is 'long' Really 64-bits on 64-bit Windows?

Comprendre la taille en bits de « long » sur Windows 64 bits

Question :

Des informations contradictoires suggèrent que ' long' peut ne pas être en 64 bits sur les machines Windows 64 bits. Est-ce vrai, et que devraient utiliser les programmeurs à la place ?

Réponse :

La réponse réside dans l'examen de différents arrangements de tailles entières sur les plates-formes 64 bits :

ILP64 (Int, Long, les pointeurs sont 64 bits)

  • Tous les types de données entières et les pointeurs sont en 64 bits.

LP64 (longs, les pointeurs sont en 64 bits)

  • Les types longs et pointeurs sont 64 bits.
  • Int et autres types entiers restent 32 bits.

LLP64 (Long Long, les pointeurs sont 64 bits)

  • Il s'agit du schéma utilisé par Microsoft dans Windows 64 bits.
  • Types longs et pointeurs sont 64 bits.
  • Int et long restent 32 bits.

Implications pour Windows :

Sur Windows 64 bits, 'long ' est en effet en 32 bits, contrairement aux autres plateformes 64 bits. Microsoft a adopté le schéma LLP64 pour garantir la compatibilité avec les applications 32 bits existantes.

Recommandations :

Pour garantir un code neutre en termes de plate-forme, utilisez les types entiers des en-tête :

  • int32_t pour les entiers 32 bits
  • int64_t pour les entiers 64 bits
  • uintptr_t pour les pointeurs

Soyez prudent lorsque en utilisant des types de systèmes (par exemple, « longs ») car ils peuvent varier sur toutes les plateformes. Utilisez uniquement intptr_t comme résultat de la soustraction de deux valeurs uintptr_t.

Conclusion :

La taille en bits de « long » sur Windows 64 bits est de 32 bits, ce qui diffère de le schéma LP64 utilisé par de nombreux autres systèmes 64 bits. Pour éviter les complications spécifiques à la plate-forme, les programmeurs doivent adopter des types entiers neutres par rapport à la plate-forme et gérer avec soin les types de système.

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