c語言中return,和exit的區別

2021-07-09 06:45:23 字數 859 閱讀 7671

exit用於在程式執行的過程中隨時結束程式,exit的引數是返回給os的。main函式結束時也會隱式地呼叫exit函式。

exit函式執行時首先會執行由atexit()函式登記的函式,然後會做一些自身的清理工作,同時重新整理所有輸出流、關閉所有開啟的流並且關閉通過標準i/o函式 tmpfile()建立的臨時檔案。exit是結束乙個程序,它將刪除程序使用的記憶體空間,同時把錯誤資訊返回父程序,而return是返回函式值並退出函式

return是語言級別的,它表示了呼叫堆疊的返回;而exit是系統呼叫級別的,它表示了乙個程序的結束。

exit函式是退出應用程式,並將應用程式的乙個狀態返回給os,這個狀態標識了應用程式的一些執行資訊。

和機器和作業系統有關一般是   0 為正常退出  非0 為非正常退出

void exit(int status);

atexit()函式的引數是乙個函式指標,函式指標指向乙個沒有引數也沒有返回值的函式。atexit()的函式原型是:int atexit (void (*)(void));在乙個程式中最多可以用atexit()註冊32個處理函式,這些處理函式的呼叫順序與其註冊的順序相反,也即最先註冊的最後呼叫,最後註冊的最先呼叫。

執行結果如下:

總結:return 是堆疊返回,當你子函式中使用return 就是從這個子函式返回。

這裡需要注意個是當我們需要從乙個void函式中返回時,程式執行完後自動返回,不需要什麼return,那麼我們從函式中途需要退出時,我們就需要新增return,千萬不要寫成return val的形式。如果編譯新增-werror 的話就會把警告當成錯誤處理。

C語言中return和exit的區別

在學習關於程序控制函式時我遇到了這個問題。include include include include include include include int main void else if child 0 子程序 else 父程序 按照我原本的想法,以上程式執行的話會列印出兩句話,但是實際情...

c語言中return,和exit的區別

下面是自己的總結,有時候覺得還是自己基礎不夠,有句話說的好彎路是最好的捷徑,自要自己多去嘗試,程式這個東西當你哪兒不懂得時候就去嘗試,當你不明白這個 的執行流程時就新增列印,這樣你就能夠清晰看到函式流程和一些函式的用法。exit用於在程式執行的過程中隨時結束程式,exit的引數是返回給os的。mai...

exit和return在C語言中的應用

exit 0 正常執行程式並退出程式。exit 1 非正常執行導致退出程式 return 返回函式,若在主函式中,則會退出函式並返回一值。拓展知識 return返回函式值,是關鍵字 exit 是乙個函式。return是語言級別的,它表示了呼叫堆疊的返回 而exit是系統呼叫級別的,它表示了乙個程序的...