Сегодня я нашел одну интересную вещь.Я не знал, что нельзя объявить переменную после метки goto.
Компиляция следующего кода
#include <stdio.h>
int main() {
int x = 5;
goto JUMP;
printf("x is : %d\n",x);
JUMP:
int a = 0; <=== giving me all sorts of error..
printf("%d",a);
}
дает ошибки типа
temp.c: In function ‘main’:
temp.c:7: error: expected expression before ‘int’
temp.c:8: error: ‘a’ undeclared (first use in this function)
temp.c:8: error: (Each undeclared identifier is reported only once
temp.c:8: error: for each function it appears in.)
Теперь, что за этим стоит?Я слышал, что нельзя создавать переменные внутри операторов case переключателя .Поскольку JUMP находится внутри той же области видимости (область видимости основной функции, в моем случае) оператора goto, я считаю, что область действия здесь не является проблемой.Но тогда почему я получаю эту ошибку?