無論正在執行的是哪個函數或者控制機制,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.\n";
cout<<"Bye!\n";
exit(0);
cout<<"This message will never be displayed\n";
cout<<"because the program has already terminated.\n";
}
結果:
注意:
要使用exit函數,必須包含cstdlib頭文件。請注意,該函數采用整數實參。這個實參是希望程序返回到計算機操作系統的退出代碼。該代碼有時在程序外部使用,以指示程序退出是成功結束還是故障結果。在上述示例中,傳遞的退出代碼是0,該代碼通常在程序main函數結束時在return語句中使用,表示程序成功結束。另一種發出該信號的方法是使用C++命名函數EXIT_SUCCESS。這個常量是在cstdlib中定義的,可以按以下形式和exit函數一起使用:
exit(EXIT_SUCCESS);
當然,一般認為良好的編程實踐是,盡可能在main函數結束時終止程序,所以,許多程序員僅使用exit()函數來處理出錯的情形。在這種情況下,應該使用錯誤代碼來表明發生了問題。這可以通過使用另一個C++命名變量EXIT_FAULT來完成。在Cstdlib中定義的這個命名常量被定義為:通常表示當前操作系統下未能成功退出的終止代碼。以下是使用示例:
exit(EXIT_FAULT);
警告:exit()函數將無條件地關閉程序。因為它繞過了程序的正常邏輯流程,所以應該謹慎使用它。