天天看點

C++ 筆記(34)— C++ exit 函數

當遇到

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

函數将無條件地關閉程式。因為它繞過了程式的正常邏輯流程,是以應該謹慎使用它。

繼續閱讀