initialization of 'identifier' is skipped by 'default' 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 default { int j = 1; } // OK, initialized in enclosing block default : int k = 1; // OK, initialization not skipped } }