return 和 exit 的區別

一、 exit 用於在程序運行的過程中隨時結束程序,exit 的參數是返回給OS的。main函數結束時也會隱式地調用exit函數。exit函數運行時首先會執行由atexit()函數登記的函數,然後會做一些自身的清理工作,同時刷新所有輸出流、關閉所有打開的流並且關閉通過標準I/O函數tmpfile()創建的臨時文件。exit是結束一個進程,它將刪除進程使用的內存空間,同時把錯誤信息返回父進程,而return是返回函數值並退出函數.

二、return返回函數值,是關鍵字;exit是一個函數。return是語言級別的,它表示了調用堆棧的返回;而exit是系統調用級別的,它表示了一個進程的結束。

三、exit函數是退出應用程序,並將應用程序的一個狀態返回給OS,這個狀態標識了應用程序的一些運行信息。和機器和操作系統有關一般是 0 爲正常退出 非0 爲非正常退出

四、return是返回函數調用,如果返回的是main函數,則爲退出程序
exit是在調用處強行退出程序,運行一次程序就結束。

五、exit函數在頭文件stdlib.h中,函數原型:
void exit(int status);
exit(0) 正常運行程序並退出程序。
exit(1) 非正常運行導致退出程序。
return() 返回函數,若在main主函數中,則會退出函數並返回一值,可以寫爲return(0)或return 0。

發佈了47 篇原創文章 · 獲贊 24 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章