Как выполняются инструкции, которые предшествуют любому объявленному тегу case
в обработанном блоке switch-case
.
Пожалуйста, объясните поведение следующих программ.
prog1:
#include<stdio.h>
int main()
{
switch(1)
{
int i=0;
case 1:printf("%d",i);
}
getchar();
return 0;
}
Выход: значение мусора.
PROG2:
#include<stdio.h>
int main()
{
switch(1)
{
printf("Inside Switch");
case 1:printf("Case 1\n");
}
printf("Outside Switch");
getchar();
return 0;
}
Вывод:
Случай 1
Внешний переключатель.
Операторы перед выражением с меткой case выглядят недостижимыми в соответствии с программой 2, но почему бы мне не получить ошибку для необъявленной переменной i
в первой программе (только предупреждение).
Было бы действительно полезно, если бы кто-нибудь мог подробно объяснить, как процедура switch
обрабатывается внутри.