Maison >développement back-end >C++ >Quand les littéraux entiers deviennent-ils 64 bits ?

Quand les littéraux entiers deviennent-ils 64 bits ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-09 05:55:10421parcourir

When Do Integer Literals Become 64-Bit?

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!

Déclaration:
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