#c
#c
Вопрос:
Код выглядит следующим образом
{
int a;
if( a == 0 )
{
std::string str("some");
goto CLEANUP;
}
return;
CLEANUP:
printf("CLEANUP");
}
это выдает мне ошибку Ошибка компилятора C2362
инициализация ‘идентификатора’ пропускается ‘меткой перехода’
Я переместил std::string str(«some»); после int a; по-прежнему выдает ту же ошибку
Комментарии:
1. я знаю, что goto — это плохой стиль, но он уже написан предыдущими программистами.
2. Похоже, что часть кода в конце перепутана?
3. Опубликуйте актуальный код
Ответ №1:
Это из-за того, что ваш:
goto CLEANUP:
Предполагается, что:
goto CLEANUP;
(точка с запятой, а не двоеточие)
Ответ №2:
Ошибка компилятора C2362
http://msdn.microsoft.com/en-us/library/s6s80d9f(v=vs.80).aspx
if( a == 0 )
{
std::string str("some");
goto CLEANUP:
}
должно быть
goto CLEANUP;
Комментарии:
1. пожалуйста, забудьте о синтаксических ошибках. я прошу вас рассказать об ошибке концепции.
Ответ №3:
goto CLEANUP:
должно быть,
goto CLEANUP;
[Также убедитесь, что ваш код компилируется как printf
неправильно в конце]