Constantes
Remonter à Présentation des constantes - Index
Les constantes ou les littéraux sont des tokens représentant des valeurs fixes, numériques ou caractères. Les termes "constante" et "littéral" sont utilisés de façon interchangeable.
Le compilateur supporte les classes suivantes de constantes : entière, en virgule flottante, caractère et chaîne, booléen et d'énumération.
La représentation interne des types numériques montrent comment ces types sont représentés de manière interne dans l'architecture du processeur.
Le type de données d'une constante est déduit par le compilateur à partir de la valeur numérique et du format utilisés dans le code source. La définition formelle d'une constante est présentée dans le tableau suivant.
Constantes : Définitions formelles :
constante : constante-flottante constante-entière constante-caractère littéral-chaîne constante-énumération littéral-booléen |
constante-énumération : identificateur |
constante-flottante : constante-fractionnaire <exposant> <suffixe-flottant> séquence-chiffres exposant <suffixe-flottant> |
constante-caractère 'séquence-car-c' (char - ANSI) L'séquence-car-c' (wchar_t - Widestring) u'séquence-car-c' (char16_t - UTF-16) (С++0x) U'séquence-car-c' (char32_t - UTF-32) (С++0x) |
constante-fractionnaire : <séquence-chiffres> . séquence-chiffres séquence-chiffres . |
séquence-car-c : car-c séquence-car-c car-c |
exposant : e <signe> séquence-chiffres E <signe> séquence-chiffres |
car-c : Tout caractère de l'ensemble de caractères source sauf l'apostrophe ( ' ), la barre oblique inversée (\), ou la séquence-échappement de saut de ligne. |
signe : un parmi + - |
séquence-échappement : séquence-échappement-simple séquence-échappement-octal séquence-échappement-hexadécimal |
séquence-chiffres : chiffre séquence-chiffres chiffre |
séquence-échappement-simple : un parmi \" \' \? \\ \a \b \f \n \r \t \v |
suffixe-flottant : un parmi f l F L |
séquence-échappement-octal : \ chiffre-octal (\o) \ chiffre-octal chiffre-octal (\oo) \ chiffre-octal chiffre-octal chiffre-octal (\ooo) |
constante-entière : constante-décimale <suffixe-entier> constante-octale <suffixe-entier> constante-hexadécimale <suffixe-entier> |
séquence-échappement-hexadécimal : \x chiffre-hexadécimal (\xh) \X chiffre-hexadécimal (\Xh) séquence-échappement-hexadécimal chiffre-hexadécimal |
constante-décimale : chiffre-non-zéro constante-décimale chiffre |
[Constantes chaîne|littéral-chaîne]]: "séquence-car-s" (char* - ANSI) L"séquence-car-s" (wchar_t* - Widestring) u"séquence-car-s" (char16_t* - UTF-16) (С++0x) U"séquence-car-s" (char32_t* - UTF-32) (С++0x) |
constante-octale : 0 constante-octale chiffre-octal |
séquence-car-s : car-s séquence-car-s car-s |
constante hexadécimale : 0x chiffre-hexadécimal 0X chiffre-hexadécimal constante-hexadécimale chiffre-hexadécimal |
car-s : Tout caractère de l'ensemble de caractères source sauf les guillemets ( ' ), la barre oblique inversée (\), ou la séquence-échappement de saut de ligne. |
chiffre-différente de zéro : un parmi 1 2 3 4 5 6 7 8 9 |
littéral-booléen: true false |
chiffre-octal : un parmi 0 1 2 3 4 5 6 7 |
|
chiffre-hexadécimal : un parmi 0 1 2 3 4 5 6 7 8 9 a b c d e f A B C D E F |
|
suffixe-entier : suffixe-nonsigné <suffixe long> suffixe long <suffixe-nonsigné> <suffixe-nonsigné> suffixe-taille |
|
suffixe-nonsigné : un parmi u U |
|
suffixe-long : un parmi l L |
|
suffixe-taille: un parmi i8 I8 i16 I16 i32 I32 i64 I64 |
Voir aussi
- Constantes entières
- Constantes à virgule flottante
- Constantes caractère
- Les trois types char
- Séquences d'échappement
- Constantes à caractères étendus et à caractères multiples
- Constantes chaîne
- Constantes énumération
- Constantes et représentation interne
- Représentation interne des types numériques
- Expressions constantes
- Int8, int16, int32, int64, int64 non signés, types entiers étendus