Dans le monde multi-plateforme C ++ (ou C) actuel, nous avons :
Data model | short | int | long | long long | pointers/size_t | Sample operating systems
...
LLP64/IL32P64 16 32 32 64 64 Microsoft Windows (x86-64 and IA-64)
LP64/I32LP64 16 32 64 64 64 Most Unix and Unix-like systems, e.g. Solaris, Linux, BSD, and OS X; z/OS
...
Ce que cela signifie aujourd’hui, c’est que, pour tout entier «commun» (signé), int
cela suffira et peut toujours être utilisé comme type d’entier par défaut lors de l’écriture du code d’application C ++. Pour les besoins pratiques actuels, il aura également une taille uniforme sur toutes les plateformes.
Ssi un cas d'utilisation nécessite au moins 64 bits, on peut utiliser aujourd'hui long long
, mais peut - être en utilisant l' un des types de bitness spécifiant ou le __int64
type peut plus logique.
Cela laisse long
au milieu, et nous envisageons d'interdire carrément l'utilisation de long
notre code d'application .
Est-ce que cela aurait du sens ou est-il judicieux d’utiliser long
du code C ++ (ou C) moderne qui doit fonctionner sur plusieurs plates-formes? (la plate-forme étant un ordinateur de bureau, des appareils mobiles, mais pas des choses comme des microcontrôleurs, des DSP, etc.)
Liens de fond éventuellement intéressants:
- En quoi la norme C ++ définit-elle la taille de type int, long?
- Pourquoi l'équipe Win64 a-t-elle choisi le modèle LLP64?
- Modèles de programmation 64 bits: Pourquoi LP64? (un peu âgé)
- Est-il
long
garanti d'avoir au moins 32 bits? (Cela répond à la discussion ci-dessous. Réponse .)
long
est le seul moyen de garantir 32 bits. int
peut être 16 bits, donc pour certaines applications, cela ne suffit pas. Oui, int
c’est parfois 16 bits sur les compilateurs modernes. Oui, les gens écrivent des logiciels sur des microcontrôleurs. Je dirais que plus de gens écrivent des logiciels qui ont plus d'utilisateurs sur des microcontrôleurs que sur des PC avec la montée des appareils iPhone et Android, sans parler de la montée des Arduinos, etc.
int
reste encore beaucoup 16 bits. Je déteste le dire, mais si vous écrivez à propos du "monde multiplateforme d'aujourd'hui", vous ne pouvez pas ignorer le sous-continent indien dans son ensemble.