Sdílet prostřednictvím


Výrazy konstant v jazyce C

Konstantní výraz se vyhodnocuje v době kompilace, ne v době běhu a dá se použít na libovolném místě, kde lze konstantu použít. Konstantní výraz se musí vyhodnotit na konstantu, která je v rozsahu reprezentovatelných hodnot pro daný typ. Operandy konstantního výrazu mohou být celočíselné konstanty, znakové konstanty, konstanty s plovoucí desetinou čárkou, výčtové konstanty, přetypování typů, sizeof výrazy a další konstantní výrazy.

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: jeden z
= *= /= %= += -= <<= >>= &= ^= |=

Nonterminals for struct deklarator, enumerator, direct deklarator, direct-abstract deklarator, and labeled statement contain the constant-expression nonterminal.

Celočíselný konstantní výraz se musí použít k určení velikosti člena bitového pole struktury, hodnoty konstanty výčtu, velikosti pole nebo hodnoty konstanty case .

Konstantní výrazy používané ve direktivách preprocesoru podléhají několika omezením. Označují se jako výrazy s omezenými konstantami. Omezený konstantní výraz nemůže obsahovat sizeof výrazy, výčtové konstanty, přetypování typu na jakýkoli typ nebo konstanty s plovoucí desetinou čárkou. Může však obsahovat speciální identifikátor konstantního výrazu defined ( ).

Viz také

Operandy a výrazy