Compartilhar via


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;
   }
}