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