Maison >développement back-end >C++ >Quand les littéraux entiers deviennent-ils 64 bits ?
Littéraux entiers 64 bits dans des contextes Int par défaut
En programmation, les littéraux entiers représentent des nombres entiers. En règle générale, ces littéraux sont affectés au type de données entier par défaut, qui a généralement une largeur de 32 bits. Cependant, certaines circonstances peuvent entraîner la création par défaut de littéraux entiers plus grands.
Un tel cas est celui où le littéral entier dépasse la plage du type entier par défaut. Par exemple, en C et C , les littéraux sans « L » ajouté ont un type qui peut représenter leur valeur. Si la valeur est trop grande pour un type int, elle sera promue en type long int ou long long int.
Cette promotion résout le problème de débordement qui se produirait autrement si le littéral était converti en 32- bit entier. La norme C 11 spécifie ce comportement dans [lex.icon] ¶2, indiquant que le type du littéral sera le premier de la liste donnée où la valeur peut être représentée :
int long int long long int
De même, C99 définit ceci mécanisme de promotion au §6.4.4.1. Cela garantit que même si un littéral entier dépasse la plage d'entiers par défaut, il sera implicitement converti en un type plus grand, ce qui lui permettra d'être représenté correctement.
Dans de rares cas, le littéral entier peut encore être trop grand pour les types entiers disponibles. Dans ce cas, C99 et C 11 génèrent une erreur de compilation, indiquant que le littéral ne peut être représenté par aucun type pris en charge. Cela évite les problèmes d'exécution causés par un dépassement d'entier.
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!