Когда точка с запятой после} обязательна в c / c ++? - PullRequest
5 голосов
/ 15 июня 2011
if(...) {
  ...
}

В вышеприведенном случае кажется, что ; является необязательным, когда точка с запятой после } необходима в c / c ++?

Ответы [ 3 ]

14 голосов
/ 15 июня 2011
int a[2] = {1,2}, j = 5;

Когда инициализация массива или структуры выполняется с помощью {}, все последующие переменные объявляются после ,.

Редактировать : Как вы изменили свой вопрос; ; является обязательным после class, enum, инициализации объявлений синтаксиса.

class A {};  // same for `struct
enum E {};   // enum class (c++0x)
int a[] = {1,2};  // array or object initialization
6 голосов
/ 15 июня 2011

Точка с запятой сама по себе является пустым оператором , и вы можете добавлять дополнительные в любом случае, когда утверждение допустимо.Поэтому было бы законно ставить точку с запятой сразу после фигурных скобок, следующих за if, хотя это вообще не было бы связано с if.Единственное место, где я могу вспомнить, где точка с запятой требуется сразу после скобки, это после объявления класса в C ++.

3 голосов
/ 16 июня 2011

Точка с запятой после закрывающей скобки является обязательной, если это конец объявления .Если это конец оператора , то точка с запятой не нужна, и если он используется, он создает дополнительный пустой оператор , который может быть недопустимым, если это серединаif - else или do - while (или try - catch в C ++)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...