Maison > développement back-end > C++ > Quand un littéral entier n'est-il pas un « int » ?

Quand un littéral entier n'est-il pas un « int » ?

Patricia Arquette
Libérer: 2024-12-17 06:02:24
original
195 Les gens l'ont consulté

When is an Integer Literal Not an `int`?

Type de littéraux entiers non int par défaut

En programmation, le type d'un littéral entier est généralement supposé être int. Cependant, il existe des cas où cela peut ne pas être le cas.

Considérez le code C suivant :

for (i = 0; i < 10000000000; i++)
Copier après la connexion

Bien que le littéral 10000000000 ne soit pas suivi d'un suffixe « L » (qui explicitement désigne un type entier long), le compilateur reconnaît que cette valeur dépasse la plage d'un 32 bits entier.

Selon les normes C99 et C 11, le type d'une constante entière est déterminé par la première entrée du tableau 6 dans laquelle sa valeur peut être représentée. Pour les constantes décimales sans suffixes, le tableau 6 spécifie les types suivants par ordre décroissant :

  • long long int
  • long int
  • int

Par conséquent, dans l'exemple de code donné, le compilateur interprète le littéral comme un long int (ou long long int si long int est de 32 bits) pour s'adapter à sa grande valeur.

Il est important de noter que les littéraux « trop gros » entraînent généralement une erreur de compilation. En effet, la valeur ne peut être représentée par aucun des types autorisés.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal