initialization of 'identifier' is skipped by 'case' label
The initialization of identifier can be skipped in a switch statement. You cannot jump past a declaration with an initializer unless the declaration is enclosed in a block. (Unless it is declared within a block, the variable is within scope until the end of the switch statement.)
Example
void func( void ) { int x; switch ( x ) { case 0 : int i = 1; // error, skipped by case 1 { int j = 1; } // OK, initialized in enclosing block case 1 : int k = 1; // OK, initialization not skipped } }