Espressioni costanti C

Un'espressione costante viene valutata in fase di compilazione, non in fase di esecuzione e può essere usata in qualsiasi posizione in cui è possibile usare una costante. L'espressione costante deve restituire una costante che rientri nell'intervallo di valori rappresentabili per quel tipo. Gli operandi di un'espressione costante possono essere costanti Integer, costanti carattere, costanti a virgola mobile, costanti di enumerazione, cast di tipo, espressioni sizeof e altre espressioni costanti.

Sintassi

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

I non determinili per dichiaratore struct, enumeratore, dichiaratore diretto, dichiaratore diretto, dichiaratore direct-abstract e istruzione etichettata contengono l'istruzione constant-expression non determiniale.

È necessario utilizzare un'espressione costante integrale per specificare le dimensioni di un membro del campo bit di una struttura, il valore di una costante di enumerazione, le dimensioni di una matrice o il valore di una case costante.

Le espressioni costanti usate nelle direttive del preprocessore sono soggette a diverse restrizioni. Sono note come espressioni costanti limitate . Un'espressione costante con restrizioni non può contenere sizeof espressioni, costanti di enumerazione, cast di tipi a qualsiasi tipo o costanti di tipo mobile. Può tuttavia contenere l'identificatore) di espressione defined ( costante speciale.

Vedi anche

Operandi ed espressioni