Compartir a través de


Expresiones constantes de C

Una expresión constante se evalúa en tiempo de compilación, en lugar de en tiempo de ejecución, y se puede usar en cualquier lugar en el que se pueda usar una constante. La expresión constante se debe evaluar como una constante que se encuentre en el intervalo de valores representables para ese tipo. Los operandos de una expresión constante pueden ser constantes enteras, constantes de caracteres, constantes de punto flotante, constantes de enumeración, conversiones de tipo, expresiones sizeof y otras expresiones constantes.

Sintaxis

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

Los elementos no terminales para declarador de struct, enumerador, declarador directo, declarador directo-abstracto e instrucción etiquetada contienen el elemento no terminal constant-expression .

Se debe usar una expresión constante entera para especificar el tamaño de un miembro de campo de bits de una estructura, el valor de una constante de enumeración, el tamaño de una matriz o el valor de una constante case .

Las expresiones constantes usadas en las directivas de preprocesador están sujetas a varias restricciones. Se conocen como expresiones constantes restringidas. Una expresión constante restringida no puede contener expresiones sizeof , constantes de enumeración, conversiones de tipos a cualquier tipo ni constantes de tipo flotante. Puede, en cambio, contener la expresión constante especial defined ( identifier ).

Consulte también

Operandos y expresiones