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


Ошибка компилятора C2362

инициализация идентификатора пропускается меткой goto.

При компиляции с помощью /Za переход к метки предотвращает инициализацию идентификатора.

Можно перейти только к объявлению с инициализатором, если объявление заключено в блок, который не введен, или если переменная уже инициализирована.

Следующий пример приводит к возникновению ошибки C2362:

// C2362.cpp
// compile with: /Za
int main() {
   goto label1;
   int i = 1;      // C2362, initialization skipped
label1:;
}

Возможное решение

// C2362b.cpp
// compile with: /Za
int main() {
   goto label1;
   {
      int j = 1;   // OK, this block is never entered
   }
label1:;
}