Udostępnij za pośrednictwem


Wyrażenia stałe języka C

Wyrażenie stałe jest obliczane w czasie kompilacji, a nie w czasie wykonywania i może być używane w dowolnym miejscu, w których można użyć stałej. Wyrażenie stałe musi zostać obliczone na stałą, która znajduje się w zakresie wartości możliwych do reprezentowania dla tego typu. Operandy wyrażenia stałego mogą być stałymi liczbami całkowitymi, stałymi znakami, stałymi zmiennoprzecinkowami, stałymi wyliczeniami, rzutami typów, sizeof wyrażeniami i innymi wyrażeniami stałymi.

Składnia

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

Nonterminals for struct deklarator, enumerator, direct deklarator, direct-abstract deklarator i instrukcja oznaczona etykietą zawierają constant-expression nonterminal.

Wyrażenie stałe całkowitej musi służyć do określania rozmiaru elementu członkowskiego pola bitowego struktury, wartości stałej wyliczenia, rozmiaru tablicy lub wartości stałej case .

Wyrażenia stałe używane w dyrektywach preprocesora podlegają kilku ograniczeniom. Są one nazywane wyrażeniami stałych z ograniczeniami . Wyrażenie stałe z ograniczeniami nie może zawierać sizeof wyrażeń, stałych wyliczenia, rzutowania typów do dowolnego typu lub zmiennych stałych typu. Może jednak zawierać specjalny identyfikator )wyrażenia defined ( stałej .

Zobacz też

Operandy i wyrażenia