关于c ++:何时使用exit()而不是返回?

When to use exit() over return?

本问题已经有最佳答案,请猛点这里访问。

我想知道什么时候应该对return语句使用exit()函数。我可以用以下任一语句结束程序:

1
2
3
4
5
exit(0);

  or

return;

我应该用哪一个?什么时候用?使用exit()有什么好处吗?


这两个在性质上是非常不同的。

  • 当您想立即终止程序时,使用exit()。如果在应用程序的任何部分遇到对exit()的调用,应用程序将完成执行。
  • return用于将程序执行控制返回给调用函数。仅在main()的情况下,return完成执行。

编辑:

为了澄清在main()中使用的情况,直接引用C11标准第5.1.2.2.3节"程序终止"中的内容,

If the return type of the main() function is a type compatible with int, a return from the initial call to the main() function is equivalent to calling the exit() function with the value returned by the main() function as its argument;11) reaching the } that terminates the
main() function returns a value of 0. If the return type is not compatible with int, the termination status returned to the host environment is unspecified.

所以,基本上,要么

  • return 0;
  • exit(0);

main()的上下文中表现相同。