函式中有多個return?C語言中,一個函式可以有幾個返回值?
阿新 • • 發佈:2019-02-04
在移植wifi的程式碼時,遇到了一些與下面類似的函式,這些函式中有不只一個return,這可是個新鮮的玩意兒:
int func (int b)
{
int a=5;
if (a>b)
return a;
else
return b;
return 0;
}
原來C/C++ 中,reutrn語句是這樣定義的:
通過在函式中使用返回語句,返回一個值給函式,同時終止函式的呼叫,返回主函式。(注意:同時終止函式的呼叫,也就是說函式在執行到return時就會終止了。)
格式: return (表示式); 或return 表示式;
功能:
(1)計算表示式的值,將表示式的值返回給函式。
(2)從被呼叫的函式返回主調函式。
說明:
(1)返回值型別應和函式型別一致,不一致將返回值自動轉換成函式型別。
(2)函式中可以有多條返回語句,這時一般與if語句聯用,執行到哪一條返回語句,哪條返回語句起作用。
(3)函式中無return語句,執行至函式體結尾時返回,此時將返回一個不確定的值給函式。
(4)如果只需要從函式中返回,而不需帶回值,使用不帶表示式的return語句。
此外,有時呼叫一個函式,需要返回多個引數,這種情況應當如何處理呢?
可以有兩種辦法:一是申請一個全域性變數,在函式呼叫時對其進行處理,返回主程式時仍然可用;另一種辦法是,返回一個指標,指標指向一個結構體,或者一個數組,這樣就能返回多個引數了。而指向結構體的指標,在很多情況下是很常見的。