次の方法で共有


コンパイラ エラー C2361

'identifier' の初期化が 'default' ラベルによってスキップされています

switch ステートメントでは、identifier の初期化がスキップできます。 宣言がブロックで囲まれている場合を除き、初期化子を使用して宣言をスキップすることはできません。 (ブロック内で宣言されていない限り、変数は switch ステートメントの最後までスコープ内にあります)。

次の例では C2361 が生成されます。

// C2361.cpp
void func( void ) {
   int x;
   switch (x) {
   case 0 :
      int i = 1;
      { int j = 1; }
   default :   // C2361 error
      int k = 1;
   }
}

考えられる解決方法:

// C2361b.cpp
// compile with: /c
void func( void ) {
   int x = 0;
   switch (x) {
   case 0 :
      { int j = 1; int i = 1;}
   default :
      int k = 1;
   }
}