Linux編程return與exit區別
exit 是用來結束一個程式的執行的,而return只是用來從一個函數中返回。
return
return 表示從被調函數返回到主調函數繼續執行,返回時可附帶一個傳回值,由return後面的參數指定,當然如果是在主函數main, 自然也就結束當前進程了,如果不是,那就是退回上一層調用。
return通常是必要的,因為函數調用的時候計算結果通常是通過傳回值帶出的。
如果函數執行不需要返回計算結果,也經常需要返回一個狀態代碼來表示函數執行的順利與否(-1和0就是最常用的狀態代碼),主調函數可以通過傳回值判斷被調函數的執行情況。
如果實在不需要函數返回什麼值,就需要用void聲明其類型。
補充:如果你函數名前有傳回型別定義,如int,double等就必須有傳回值,而如果是void型,則可以不寫return,但這時即使寫了也無法返回數值的
例如:
1、非void型
int f1()
{
int i=1;
return 1;
//return(i); //這樣也可以
}
2、void型
void f2()
{
int i=1;
//return;//這樣也可以,不要這一句也可以
}
有時即使被調用函數是void類型被調函數中的return也不是毫無意義的
舉例:
#include "stdio.h"
void function()
{printf("111111");
return;
printf("222222");
}
main()
{function();
}
運行結果為:螢幕上只輸出一串數字111111而沒有222222。但是如果去掉function函數中的return語句,就可以同時輸出一串數字222222。
exit()
exit(0)表示正常退出執行程式,如果加其它的數值:1,2,....可以表示由於不同的錯誤原因而退出 。
那麼,1,2,3怎麼對應不同的原因? --你自己想讓它是什麼意思,它就是什麼意思
但一般都有常用的、通用的含義:比如 0 一般都表示正常返回、退出。
因此,,在main函數中exit(0)等價於return 0。