无论正在执行的是哪个函数或者控制机制,exit()函数都将导致程序终止。
当遇到main函数中的return 语句时,C++程序将停止执行。
其他函数结束时,程序并不会停止。程序的控制将返回到函数调用之后的位置。然而,有时候会出现一些非常少见的请款,使得程序有必要在main以外的函数中终止。要实现这一点,可以用exit函数。
当调用exit函数时,无论是哪个函数调用了该调用,都将导致程序停止。如下实例所示:
test_exit.cpp
#include <iostream>
#include <cstdlib>
using namespace std;
//Function prototype
void someFunction();
int main()
{
someFunction();
return 0;
}
void someFunction()
{
cout<<"This program terminates with the exit function.
";
cout<<"Bye!
";
exit(0);
cout<<"This message will never be displayed
";
cout<<"because the program has already terminated.
";
}
结果:
注意:
要使用exit函数,必须包含cstdlib头文件。请注意,该函数采用整数实参。这个实参是希望程序返回到计算机操作系统的退出代码。该代码有时在程序外部使用,以指示程序退出是成功结束还是故障结果。在上述示例中,传递的退出代码是0,该代码通常在程序main函数结束时在return语句中使用,表示程序成功结束。另一种发出该信号的方法是使用C++命名函数EXIT_SUCCESS。这个常量是在cstdlib中定义的,可以按以下形式和exit函数一起使用:
exit(EXIT_SUCCESS);
当然,一般认为良好的编程实践是,尽可能在main函数结束时终止程序,所以,许多程序员仅使用exit()函数来处理出错的情形。在这种情况下,应该使用错误代码来表明发生了问题。这可以通过使用另一个C++命名变量EXIT_FAULT来完成。在Cstdlib中定义的这个命名常量被定义为:通常表示当前操作系统下未能成功退出的终止代码。以下是使用示例:
exit(EXIT_FAULT);
警告:exit()函数将无条件地关闭程序。因为它绕过了程序的正常逻辑流程,所以应该谨慎使用它。