У меня есть следующий упрощенный код:
#include <stdio.h>
int main ()
{
printf("Hello ");
goto Cleanup;
Cleanup:
char *str = "World\n";
printf("%s\n", str);
}
Я получаю сообщение об ошибке, потому что после метки объявляется новая переменная. Если я помещаю содержимое (главным образом, инициализацию) после метки в блоке {}, компиляция завершается успешно.
Я думаю, что я понимаю причину блока в случае коммутатора, но почему он должен применяться в случае метки?
Эта ошибка возникает из компилятора gcc