何时在返回时使用 exit()

When to use exit() over return?

本文关键字:exit 返回 何时      更新时间:2023-10-16

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

exit(0);
  or
return;

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

这两者在本质上是非常不同的。

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

编辑:

为了澄清在main()中使用时的情况,直接引用C11标准第 §5.1.2.2.3 章,程序终止

如果 main() 函数的return类型是与 int 兼容的类型,则从初始调用到 main() 函数的return等效于以main()函数返回的值作为其参数调用exit()函数;11( }达到终止 main()函数返回值 0 。如果返回类型与 int 不兼容,则返回给主机环境的终止状态为未指定。

所以,基本上,要么

  • return 0;
  • exit(0);

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