Teilen über


Konstante Ausdrücke in C

Ein konstanter Ausdruck wird nicht zur Laufzeit, sondern zur Kompilierzeit ausgewertet, Er kann überall dort eingesetzt werden, wo auch eine Konstante verwendet werden kann. Ergebnis des konstanten Ausdrucks muss eine Konstante sein, deren Wert für den betreffenden Typ darstellbar sein muss. Die Operanden eines konstanten Ausdrucks können ganzzahlige Konstanten, Zeichenkonstanten, Gleitkommakonstanten, Enumerationskonstanten, Typumwandlungen, sizeof-Ausdrücke oder sonstige konstante Ausdrücke sein.

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

Die Non-Terminals für den Strukturdeklarator, den Enumerator, den direkten Deklarator, den direkt-abstrakten Deklarator und die Anweisung mit Bezeichnung enthalten das Non-Terminal constant-expression .

Ein integraler konstanter Ausdruck muss verwendet werden, um die Größe eines Bitfeldmembers einer Struktur, den Wert einer Enumerationskonstanten, die Größe eines Arrays oder den Wert einer case -Konstanten anzugeben.

Konstante Ausdrücke, die in Präprozessoranweisungen verwendet werden, unterliegen mehreren Einschränkungen. Diese werden als eingeschränkte konstante Ausdrücke bezeichnet. Ein eingeschränkter konstanter Ausdruck darf keine sizeof -Ausdrücke, Enumerationskonstanten, Typumwandlungen in beliebige Typen oder Gleitkommakonstanten enthalten. Dagegen kann der spezielle konstante Ausdruck defined ( identifier ) enthalten sein.

Weitere Informationen

Operanden und Ausdrücke