Expressions constantes C

Une expression constante est évaluée au moment de la compilation, et non au moment de l’exécution, et elle peut être utilisée partout où une constante peut être utilisée. L'expression constante doit être évaluée en une constante qui est comprise dans la plage des valeurs représentables pour ce type. Les opérandes d'une expression constante peuvent être des constantes entières, des constantes caractère, des constantes à virgule flottante, des constantes d'énumération, des casts de type, des expressions sizeof et d'autres expressions constantes.

Syntaxe

constant-expression:
conditional-expression

conditional-expression:
logical-OR-expression
logical-OR-expression ? expression : conditional-expression

expression:
assignment-expression
expression , assignment-expression

assignment-expression:
conditional-expression
unary-expression assignment-operator assignment-expression

assignment-operator : l'un des éléments suivants :
= *= /= %= += -= <<= >>= &= ^= |=

Les éléments non terminaux pour les déclarateurs de struct, l’énumérateur, le déclarateur direct, le déclarateur direct-abstract et l’instruction étiquetée contiennent l’élément non terminal constant-expression.

Une expression constante intégrale doit être utilisée pour spécifier la taille d’un membre champ de bits d’une structure, la valeur d’une constante d’énumération, la taille d’un tableau ou la valeur d’une constante case.

Les expressions constantes utilisées dans les directives de préprocesseur sont soumises à plusieurs restrictions. Elles sont appelées expressions constantes restreintes. Une expression constante restreinte ne peut pas contenir d’expression sizeof, de constantes d’énumération, de casts de type en tout type, ni de constantes de type flottant. Elle peut toutefois contenir l’expression constante spéciale defined ( identifier ).

Voir aussi

Opérandes et expressions