编译器错误 C2362

“identifier”的初始化被“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:;
}