Compartir a través de


Error del compilador C2361

la inicialización de 'identificador' se omite en la etiqueta 'default'

La inicialización de identifier se puede omitir en una instrucción switch. No se puede saltar después de una declaración con un inicializador, a menos que la declaración esté incluida en un bloque. A menos que se declare dentro de un bloque, la variable está dentro del ámbito hasta el final de la instrucción switch.

El ejemplo siguiente genera el error C2361:

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

Posible solución:

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