1. 程式人生 > 其它 >17.exit和return的區別

17.exit和return的區別

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)
	{

	}
}