Dela via


C-konstantuttryck

Ett konstant uttryck utvärderas vid kompileringstid, inte körningstid, och kan användas på valfri plats som en konstant kan användas på. Det konstanta uttrycket måste utvärderas till en konstant som finns i intervallet med representerande värden för den typen. Operanderna i ett konstant uttryck kan vara heltalskonstanter, teckenkonstanter, flyttalskonstanter, uppräkningskonstanter, typgjutningar, sizeof uttryck och andra konstanta uttryck.

Syntax

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

Icke-terminalerna för structdeklarator, uppräknare, direktdeklarator, direktabstraktionsdeklarator och märkt uttryck innehåller den constant-expression icke-terminala.

Ett heltalskonstantuttryck måste användas för att ange storleken på en bitfältsmedlem i en struktur, värdet för en uppräkningskonstant, storleken på en matris eller värdet för en case konstant.

Konstanta uttryck som används i förprocessordirektiv omfattas av flera begränsningar. De kallas för begränsade konstanta uttryck. Ett begränsat konstant uttryck får inte innehålla sizeof uttryck, uppräkningskonstanter, typgjutningar till någon typ eller konstanter av flytande typ. Den kan dock innehålla den speciella konstanta uttrycksidentifieraren)defined (.

Se även

Operander och uttryck