一般说我有一些函数
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
不好,所以我放弃了它:)
您可以使用
exit()
函数在 step1()
、step2()
...实际任何地方随时终止进程。
exit
将从任何地方终止程序,但在大多数情况下这是一个坏主意,检查函数的返回值并处理(例如在您的情况下退出)是一种更干净的方法(不需要全局变量)