Expressões de constante C

Uma expressão de constante é avaliada em tempo de compilação, não em tempo de execução, e pode ser usada em qualquer local em que uma constante possa ser usada. A expressão constante deve ser avaliada como uma constante que está no intervalo de valores representáveis para esse tipo. Os operandos de uma expressão constante podem ser constantes de inteiro, constantes de caractere, constantes de ponto flutuante, constantes de enumeração, conversões de tipos, expressões sizeof e outras expressões constantes.

Sintaxe

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

Os não terminais para declarador de struct, enumerador, declarador direto, declarador direct-abstract, e instrução rotulada contêm não terminais constant-expression.

Uma expressão de constante integral deve ser usada para especificar o tamanho de um membro de campo de bit de uma estrutura, o valor de uma constante de enumeração, o tamanho de uma matriz ou o valor de uma constante case.

As expressões de constante usadas em políticas de pré-processador estão sujeitas a várias restrições. Elas são conhecidas como expressões de constante restritas. Uma expressão de constante restrita não pode conter expressões sizeof, constantes de enumeração, conversões de tipos para qualquer tipo nem constantes do tipo flutuante. Pode, entretanto, conter a expressão constante especial defined ( identificador ).

Confira também

Operandos e expressões