Espressioni costanti CC Constant Expressions

Un'espressione costante viene valutata in fase di compilazione, non in fase di esecuzione; e può essere utilizzata in qualsiasi punto in cui può essere utilizzata una costante.A constant expression is evaluated at compile time, not run time, and can be used in any place that a constant can be used. L'espressione costante deve restituire una costante che rientri nell'intervallo di valori rappresentabili per quel tipo.The constant expression must evaluate to a constant that is in the range of representable values for that type. 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.The operands of a constant expression can be integer constants, character constants, floating-point constants, enumeration constants, type casts, sizeof expressions, and other constant expressions.

SintassiSyntax

constant-expression:constant-expression:
conditional-expressionconditional-expression

conditional-expression:conditional-expression:
logical-OR-expressionlogical-OR-expression

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

expression:expression:
assignment-expressionassignment-expression

expression , assignment-expressionexpression , assignment-expression

assignment-expression:assignment-expression:
conditional-expressionconditional-expression

unary-expression assignment-operator assignment-expressionunary-expression assignment-operator assignment-expression

assignment-operator: uno traassignment-operator: one of
= *= /= %= += -= <<= >>= &= ^= |== *= /= %= += -= <<= >>= &= ^= |=

I non terminal per il dichiaratore di struct, l'enumeratore, il dichiaratore diretto, il dichiaratore astratto diretto e l'istruzione etichettata contengono il non terminal constant-expression.The nonterminals for struct declarator, enumerator, direct declarator, direct-abstract declarator, and labeled statement contain the constant-expression nonterminal.

Un'espressione costante integrale deve essere usata per specificare la dimensione di un membro del campo di bit di una struttura, il valore di una costante di enumerazione, la dimensione di una matrice o il valore di una costante case.An integral constant expression must be used to specify the size of a bit-field member of a structure, the value of an enumeration constant, the size of an array, or the value of a case constant.

Le espressioni costanti utilizzate nelle direttive per il preprocessore sono soggette a restrizioni aggiuntive.Constant expressions used in preprocessor directives are subject to additional restrictions. Di conseguenza, sono note come "espressioni costanti limitate".Consequently, they are known as "restricted constant expressions." Un'espressione costante limitata non può contenere espressioni sizeof, costanti di enumerazione, i cast di tipo su un tipo qualsiasi o costanti di tipo mobile.A restricted constant expression cannot contain sizeof expressions, enumeration constants, type casts to any type, or floating-type constants. È tuttavia possibile che contenga l'espressione costante speciale defined (identifier).It can, however, contain the special constant expression defined (identifier).

Vedere ancheSee Also

Operandi ed espressioniOperands and Expressions