編輯shell
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
int
main(
int
argc,
char
*argv[])
{
int
status;
printf
(
"Enter either 1 or 2\n"
);
status=getch();
/*Sets DOS error level*/
exit
(status-
'0'
);
/*Note:this line is never reached*/
return
0;
}
|
exit(0):正常運行程序並退出程序;數據庫
exit(1):非正常運行致使退出程序;windows
return():返回函數,若在主函數中,則會退出函數並返回一值。數據結構
詳細說:函數
1. return返回函數值,是關鍵字; exit 是一個函數。this
2. return是語言級別的,它表示了調用堆棧的返回;而exit是系統調用級別的,它表示了一個進程的結束。
3. return是函數的退出(返回);exit是進程的退出。spa
4. return是C語言提供的,exit是操做系統提供的(或者函數庫中給出的)。操作系統
5. return用於結束一個函數的執行,將函數的執行信息傳出個其餘調用函數使用;exit函數是退出應用程序,刪除進程使用的內存空間,並將應用程序的一個狀態返回給OS,這個狀態標識了應用程序的一些運行信息,這個信息和機器和操做系統有關,通常是 0 爲正常退出, 非0 爲非正常退出。code
6. 非主函數中調用return和exit效果很明顯,可是在main函數中調用return和exit的現象就很模糊,多數狀況下現象都是一致的。
繼承
exit(0)與exit(1)對你的程序來講,沒有區別。對使用你的程序的人或者程序來講,區別可就大了。通常來講,exit 0 能夠告知你的程序的使用者:你的程序是正常結束的。若是 exit 非 0 值,那麼你的程序的使用者一般會認爲你的程序產生了一個錯誤。以 shell 爲例,在 shell 中調用完你的程序以後,用 echo $? 命令就能夠看到你的程序的 exit 值。在 shell 腳本中,一般會根據上一個命令的 $? 值來進行一些流程控制。