共用方式為


編譯器錯誤 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;
   }
}