1. 程式人生 > >函式中有多個return?C語言中,一個函式可以有幾個返回值?

函式中有多個return?C語言中,一個函式可以有幾個返回值?

      在移植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語句。

       此外,有時呼叫一個函式,需要返回多個引數,這種情況應當如何處理呢?

       可以有兩種辦法:一是申請一個全域性變數,在函式呼叫時對其進行處理,返回主程式時仍然可用;另一種辦法是,返回一個指標,指標指向一個結構體,或者一個數組,這樣就能返回多個引數了。而指向結構體的指標,在很多情況下是很常見的。