Partager via


Erreur du compilateur C2361

l’initialisation de 'identifier' est ignorée par l’étiquette 'default'

L’initialisation de identifier peut être ignorée dans une switch instruction. Vous ne pouvez pas passer une déclaration avec un initialiseur, sauf si la déclaration est placée dans un bloc. (Sauf s’il est déclaré dans un bloc, la variable se trouve dans l’étendue jusqu’à la fin de l’instruction switch .)

L’exemple suivant génère l’erreur C2361 :

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

Résolution possible :

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