Maison >développement back-end >C++ >Pourquoi les littéraux entiers excessivement grands en C et C ne sont-ils parfois pas par défaut sur « int » ?
Litéraux entiers : pas toujours int par défaut
Lors d'une itération en boucle, des littéraux entiers trop grands peuvent entraîner des problèmes inattendus. Normalement, les littéraux sans suffixes sont interprétés comme des int. Cependant, cette hypothèse peut ne pas être valable pour de très grandes valeurs.
Débordement et promotion
Lorsqu'un littéral entier dépasse la plage de int (généralement 32 bits), non défini un comportement (UB) peut en résulter. Cependant, dans certains cas, le compilateur peut automatiquement promouvoir le littéral vers un type plus grand, tel que long int (qui est généralement de 64 bits).
Spécifications standard
Les normes C et C réglementent la promotion des littéraux entiers aux valeurs appropriées. types.
Exemple
Considérez l'entier littéral 10000000000. Dans un environnement C, cela serait interprété comme un entier long. Cependant, si le compilateur utilisé est un compilateur 32 bits, cela pourrait entraîner une erreur de compilation car le littéral est trop grand pour les types entiers disponibles.
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!