當遇到
main
函數中的
return
語句時,
C++
程式将停止執行。但其他函數結束時,程式并不會停止。程式的控制将傳回到函數調用之後的位置。然而,有時候會出現一些非常少見的情況,使得程式有必要在
main
以外的函數中終止。要實作這一點,可以使用
exit
函數。
當調用
exit
函數時,無論是哪個函數包含了該調用,都将導緻程式停止。見如下示例代碼:
#include <iostream>
#include <cstdlib>
using namespace std;
void func()
{
cout << "enter func" << endl;
exit(0);
cout << "exit func" << endl;
}
int main()
{
func();
cout << "main func" << endl;
return 0;
}
隻輸出結果:
enter func
要使用
exit
函數,必須包含
<cstdlib>
頭檔案。
請注意,
exit
函數釆用整數實參,這個實參是希望程式傳回到計算機作業系統的退出代碼。該代碼有時在程式外部使用,以訓示程式退出是成功結束還是故障的結果。
上面的程式中,傳遞的退出代碼是
,該代碼通常在程式
main
函數結束時在
return
語句中使用,表示程式成功終止。
另一種發出該信号的方法是使用
C++
命名常量
EXIT_SUCCESS
。這個常量是在
cstdlib
中定義的,可以按以下形式和
exit
函數一起使用:
當然,一般認為良好的程式設計實踐是,盡可能在
main
函數結束時終止程式,是以,許多程式員僅使用
exit
函數來處理出錯的情形。在這種情況下,應該使用錯誤代碼來表明發生了問題。這可以通過使用另一個
C++
命名常量
EXIT_FAILURE
來完成。在
cstdlib
中定義的這個命名常量被定義為:通常表示目前作業系統下未能成功退出的終止代碼。以下是其使用示例:
提示,
exit
函數将無條件地關閉程式。因為它繞過了程式的正常邏輯流程,是以應該謹慎使用它。