return與exit()

今天在Linux下編寫程序的時候,遇到了exit()函數,於是查閱了相關資料。

exit()函數通常是用在子程序中用來終結程序用的,使用後程序自動結束,跳回操作系統。這有點類似於程序中的中斷。保存斷點,中斷執行完後,繼續執行中斷前的任務。也有點類似於break語句,直接跳出當循環,比較地有點不太恰當,但這些似乎都有着某種關聯。

exit(0)表示正常退出,exit(1)表示程序異常退出,退出之前的語句都照常執行。在整個程序中,只要調用exit()函數,程序就結束了。

比如:

void sum(int a,int b){
printf("%d\n",a + b);//1
exit(0);
}
int main()
{
sum(1,3);
printf("just a test\n");//2
return 0;}

在sum函數中有eixt(0),那麼結果是程序執行完sum函數後就結束了,只有第一個printf的內容將會輸出。如果把sum中的exit改爲我們熟悉的return,那麼程序將會按照流程執行到main中的return 0,然後結束。
"return exp;"表示從被調函數返回到主調函數繼續執行,並報告exp的值。如果說函數名是一個入口的話,那return就是一個出口,離開當前的子程序,回到主程序。返回時可附帶一個返回值,由return後面的參數exp指定。順便說一句return並不是一個函數(雖然return可帶參數,當然也可以不帶),它只是一個語句。exit()函數的定義在"stdlib.h"這個頭文件中,如果有需要使用exit()函數,不要忘記加上這個頭文件。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章