Поделиться через


Постоянные выражения в C

Константное выражение вычисляется во время компиляции, а не во время выполнения, и может использоваться в любом месте, в котором возможно использование константы. При вычислении константного выражения должна получаться константа со значением в диапазоне представимых значений для этого типа. Операнды константного выражения могут быть целыми константами, символьными константами, константами с плавающей запятой, константами перечисления, приведениями типов, выражениями sizeof и другими константными выражениями.

Синтаксис

  • константное-выражение:
    условное-выражение

  • условное-выражение:
    логическое-выражение-ИЛИ

    выражение-логического-ИЛИ**?** выражение**:** условное-выражение

  • выражение:
    выражение-присваивания

    выражение**,** выражение-присваивания

  • выражение-присваивания:
    условное-выражение

    унарное-выражение оператор-присваивания выражение-присваивания

  • оператор-присваивания: один из следующих операторов:
    = *= /= %= += –= <<= >>= &= ^= |=

Нетерминальные слова для декларатора структуры, перечислителя, прямого декларатора, прямого абстрактного декларатора и оператора с меткой содержат нетерминальное константное-выражение.

Для определения размера члена битового поля структуры, значения константы перечисления, размера массива или значения константы case должно использоваться целочисленное константное выражение.

На константные выражения, используемые в директивах препроцессора, накладываются дополнительные ограничения. Поэтому они называются "ограниченными константными выражениями". Ограниченное константное выражение не может содержать выражения sizeof, константы перечисления, приведения типов к любому типу или константы типа с плавающей запятой. Однако оно может содержать специальное константное выражение defined (identifier).

См. также

Основные понятия

Операнды и выражения