轉自:https://blog.csdn.net/qq_41035588/article/details/81843629
exit()與return的差別:
exit(0):正常運作程式并退出程式,調用時程式運作正常結束;
exit(1):非正常運作導緻退出程式,調用時程式運作非正常結束;
return():傳回函數,若在主函數中,則會退出函數并傳回一值,在其他函數中意味着函數調用完畢,并傳回一個值。
本質上:
- return傳回函數值,是關鍵字; exit 是一個函數。
- return是語言級别的,它表示了調用堆棧的傳回;而exit是系統調用級别的,它表示了一個程序的結束。
- return是函數的退出(傳回);exit是程序的退出。 return是C語言提供的;exit是作業系統提供的(或者函數庫中給出的)。
- return用于結束一個函數的執行,将函數的執行資訊傳出個其他調用函數使用;exit函數是退出應用程式,删除程序使用的記憶體空間,并将應用程式的一個狀态傳回給OS,這個狀态辨別了應用程式的一些運作資訊,這個資訊和機器和作業系統有關,一般是
- 0 為正常退出, 非0 為非正常退出。
- 非主函數中調用return和exit效果很明顯,但是在main函數中調用return和exit的現象就很模糊,多數情況下現象都是一緻的。
示例一:
```powershell
#include<stdio.h>
#include<stdlib.h>
void fun()
{
printf("調用return前\n");
return;//結束此函數的調用
printf("調用return後\n");
}
int main()
{
printf("調用fun函數前\n");
fun();
printf("調用fun函數後\n");
return 0;
}
運作結果:
調用fun函數前
調用return前
調用fun函數後
示例二:
#include<stdio.h>
#include<stdlib.h>
void fun()
{
// printf("調用return前\n");
// return;//結束此函數的調用
// printf("調用return後\n");
printf("調用exit前\n");
exit(0);
printf("調用exit後\n");
}
int main()
{
printf("調用fun函數前\n");
fun();
printf("調用fun函數後\n");
return 0;
}
運作結果:
調用fun函數前
調用exit前
結語
人生就應該exit(0),光明磊落,血氣方剛,在對的時間做對的事,才不枉在世上走一回。