Výrazy konstant v jazyce C
Výraz konstanty je vyhodnocován v době kompilace, nikoli za běhu a lze jej použít v jakémkoli místě, kde lze použít konstantu.Výraz konstanty musí být vyhodnocen jako konstanta, která je v dosahu reprezentovatelných hodnot daného typu.Operandy a výraz konstanty mohou být celočíselné konstanty, znakové konstanty, konstanty s plovoucí desetinnou čárkou, konstanty výčtu, přetypování, výrazy sizeof a ostatní výrazy konstanty.
Syntax
výraz konstanty:
podmíněný výrazpodmíněný výraz:
výraz logické operace ORvýraz logické operace OR**?** výraz**:** podmíněný výraz
výraz:
výraz přiřazenívýraz**,** výraz přiřazení
výraz přiřazení:
podmíněný výrazunární výraz operátor přiřazení výraz přiřazení
operátor přiřazení: jeden z
= *= /= %= += –= <<= >>= &= ^= |=
Nonterminály deklarátoru struktury, enumerátoru, přímého deklarátoru, přímého abstraktního deklarátoru a pojmenovaný příkaz obsahují nonterminál výraz konstanty.
Výraz integrální konstanty musí být použit k určení velikosti člena bitového pole struktury, hodnoty konstanty výčtu, velikosti pole nebo hodnoty konstanty case.
Výrazy konstanty direktiv preprocesoru jsou předmětem dalších omezení.Jsou také známé jako "výrazy omezené konstanty". Výraz omezené konstanty nemůže obsahovat výrazy sizeof, konstanty výčtu, přetypování na libovolný typ nebo konstanty s plovoucí desetinnou čárkou.Může však obsahovat výraz speciální konstanty defined (identifier).