通常说我有一些函数step1
step2
...,它们被依次调用:
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
不好,所以我将其丢弃:) 最佳答案
一种选择是检查step1()
函数的返回值,如果它是错误的,只需在return 1
中使用例如main
。在C ++中,使用return
中的main
(带有适当的状态代码)完成程序是首选方法。
其他选项是exit
。关键是您可以在代码中的任何位置调用它。但是,在C ++中,建议not很大。关于C,有一个问题here讨论在C中使用exit
是否是一个好主意。