Erro do compilador C2361
inicialização de 'identificador' é ignorada pelo rótulo 'default'
A inicialização de identifier
pode ser ignorada em uma instrução switch
. Você não pode passar por uma declaração com um inicializador, a menos que a declaração seja colocada em um bloco. (A menos que seja declarada dentro de um bloco, a variável está dentro do escopo até o final da instrução switch
.)
O seguinte exemplo gera o erro C2361:
// C2361.cpp
void func( void ) {
int x;
switch (x) {
case 0 :
int i = 1;
{ int j = 1; }
default : // C2361 error
int k = 1;
}
}
Resolução possível:
// 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;
}
}