C語言中return和exit的區別

2021-08-09 06:58:33 字數 1139 閱讀 5346

在學習關於程序控制函式時我遇到了這個問題。

#include #include #include #include #include #include #include int main(void)

else

if(child==0) // 子程序

else //父程序

}

按照我原本的想法,以上程式執行的話會列印出兩句話,但是實際情況只列印出父程序的一句,具體的原因是由於return和exit的不同造成的。

exit函式在標頭檔案stdlib.h中。

exit(0):正常執行程式並退出程式;

exit(1):非正常執行導致退出程式;

return():返回函式,若在main主函式中,則會退出函式並返回一值,可以寫為return(0),或return 0。

詳細說:

1. return返回函式值,是關鍵字;exit是乙個函式。

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

3. return是函式的退出(返回);exit是程序的退出。

4. return是c語言提供的,exit是作業系統提供的(或者函式庫中給出的)。

5. return用於結束乙個函式的執行,將函式的執行資訊傳出個其他呼叫函式使用;exit函式是退出應用程式,刪除程序使用的記憶體空間,並將應用程式的乙個狀態返回給os,這個狀態標識了應用程式的一些執行資訊,這個資訊和機器和作業系統有關,一般是 0 為正常退出,非0 為非正常退出。

6. 非主函式中呼叫return和exit效果很明顯,但是在main函式中呼叫return和exit的現象就很模糊,多數情況下現象都是一致的。

像對於上邊的程式,在main函式中使用return便是退出了整個程式。如果使用exit則只是退出新建立的程序,程式則會繼續執行。

c語言中return,和exit的區別

exit用於在程式執行的過程中隨時結束程式,exit的引數是返回給os的。main函式結束時也會隱式地呼叫exit函式。exit函式執行時首先會執行由atexit 函式登記的函式,然後會做一些自身的清理工作,同時重新整理所有輸出流 關閉所有開啟的流並且關閉通過標準i o函式 tmpfile 建立的臨...

c語言中return,和exit的區別

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

exit和return在C語言中的應用

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