Вообще у меня есть некоторые функции step1
step2
... и они называются последовательно:Завершить всю программу в начале C?
int main()
{
...
step1(); // something wrong detected and need to break out of the whole program
step2();
step3();
...
}
Как я могу выйти из step1
и пропустить всю остальную часть кода, чтобы прекратить main()
функцию?
В настоящее время я могу думать только о настройке глобальной переменной, как bool isErr
как флаг, так что
step1(); // error detected and isErr is set to 1 inside step1()
if (isErr)
return;
step2();
...
Есть ли лучше или больше «канонические» подходы?
КСТАТИ Я слышал, что goto
плохо, поэтому я отказаться от него :)
Возможный дубликат [Как выйти из программы на C++?] (Http://stackoverflow.com/questions/1116493/how-to-quit-ac-program) – usr1234567
Если проблема связана с некоторыми потоками данных, которые вы хотел бы, чтобы пользователь мог проверить, 'std :: abort()' может быть хорошей идеей, поскольку он выходит из процесса с сигналом и может заставить хост создать дамп ядра (что делает ситуацию отлаживаемой несколькими способами). –
C не C++ не C! Выбери один! – Olaf