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


Составной оператор (C)

Составная инструкция (также называемая блоком) обычно отображается как текст другого оператора, например if оператора. Объявления и типы описывают форму и смысл объявлений, которые могут отображаться в голове составной инструкции.

Синтаксис

compound-statement:
{ declaration-list выбиратьstatement-listвыбирать}

declaration-list:
declaration
declaration-list declaration

statement-list:
statement
statement-list statement

Если есть объявления, они должны прийти до каких-либо заявлений. Область каждого идентификатора, объявленного в начале составной инструкции, простирается от точки объявления до конца блока. Он отображается во всем блоке, если объявление одного и того же идентификатора не существует во внутреннем блоке.

Идентификаторы в составной инструкции предполагаются auto , если явно не объявлены в противном случае с registerфункциями static, кроме externфункций, которые могут быть externтолько . Вы можете оставить extern описатель в объявлениях функций, и функция по-прежнему будет.extern

Хранилище не выделяется и инициализация не допускается, если переменная или функция объявлена в составной инструкции с классом externхранилища. Объявление относится к внешней переменной или функции, определенной в другом месте.

Переменные, объявленные в блоке с auto ключевым словом, register перераспределяются и при необходимости инициализированы при каждом вводе составной инструкции. Эти переменные больше не определяются после завершения составной инструкции. Если переменная, объявленная внутри блока, имеет static атрибут, переменная инициализируется при начале выполнения программы и сохраняет его значение во всей программе. Дополнительные сведения staticсм. в классах хранилища.

В этом примере показана составная инструкция:

if ( i > 0 )
{
    line[i] = x;
    x++;
    i--;
}

В этом примере, если i больше 0, все инструкции внутри составной инструкции выполняются по порядку.

См. также

Отчеты