Почему переменные не могут быть объявлены в операторе switch?



Я всегда задавался этим вопросом-почему вы не можете объявлять переменные после метки case в операторе switch? В C++ вы можете объявлять переменные практически в любом месте (и объявление их близко к первому использованию, очевидно, хорошо), но следующее все равно не будет работать:



switch (val)  
{
case VAL:
// This won't work
int newVal = 42;
break;
case ANOTHER_VAL:
...
break;
}


выше дает мне следующую ошибку (MSC):




инициализация 'newVal' пропускается меткой 'case'




Это, кажется, ограничение в других и языки тоже. Почему это такая проблема?

522   0  

Comments

    Ничего не найдено.