Constantes

De Appmethod Topics
Aller à : navigation, rechercher

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