Вопрос о C Синтаксис: вложенные фигурные скобки для объявления функции struct? - PullRequest
0 голосов
/ 10 марта 2020

Название может быть немного запутанным, так как у меня возникают проблемы с его описанием. Я уверен, что об этом уже спрашивают, но я не знаю , как правильно спросить его и найти на сайте.

По сути, для C я просматриваю некоторый код ядра и вижу, что в некоторых функциях есть дополнительный «вложенный» набор фигурных скобок ('{}'), который всегда имеет комментарий заголовка «TRACE» и содержит информацию о структуре.

Я пытаюсь выяснить, как называется этот синтаксис, и больше об этом в целом. Буду признателен за любую помощь. Спасибо! (Снимок экрана ниже)

Снимок экрана примера кода

1 Ответ

2 голосов
/ 10 марта 2020

Это всего лишь сложное утверждение. Везде, где вы можете иметь утверждение, например x = 3; или while (i) …, вы можете иметь составное выражение { … }. Внутри составного оператора вы можете иметь объявления и операторы.

Составные операторы часто встречаются как операторы, используемые с if, while или аналогичными операторами:

if (a < b)
{ // Start compound statement.
   foo(a);
   bar(b);
}

while (n--)
{ // Start compound statement.
    foo(p, n);
}

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

Элементы функций также составные высказывания:

int foo(int a, int b)
{ // Start compound statement.
    return a+b;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...