17.exit和return的區別
阿新 • • 發佈:2022-03-18
exit和return的區別
exit函式在標頭檔案stdlib.h中
- exit(0):正常執行程式並退出程式;
- exit(1):非正常執行導致退出程式;
- return():返回函式,若在main主函式中,則會退出函式並返回一值,可以寫為return(0),或return 0;
詳細說:
- return返回函式值,是關鍵字;exit是一個函式。
- return是語言級別的,它表示了呼叫堆疊的返回;而exit是系統呼叫級別的,它表示了一個程序的結束。
- return是函式的退出(返回);exit是程序的退出。
- return是C語言提供的,exit是作業系統提供的(或者函式庫中給出的)。
- return用於結束一個函式的執行,將函式的執行資訊傳出個其他呼叫函式使用;exit函式是退出應用程式,刪除程序使用的記憶體空間,並將應用程式的一個狀態返回給OS,這個狀態標識了應用程式的一些執行資訊,這個資訊和機器和作業系統有關,一般是 0 為正常退出,非0 為非正常退出。
- 非主函式中呼叫return和exit效果很明顯,但是在main函式中呼叫return和exit的現象就很模糊,多數情況下現象都是一致的。
示例一
#include<stdio.h>
void fun()
{
return;
printf("fun");
}
int main()
{
fun();
return 0;//return作用,中斷main函式,一個檔案只可以有一個main函式,結束return所在的函式
printf("hhhh");
return 0;
}
示例二
#include<stdio.h> #include<stdlib.h> void fun() { printf("in fun"); exit();//結束整個程序 } int main() { fun(); printf("after fun\n"); while (1) { } }