天天看點

                    内聯函數

在C++中,為了解決調用小函數,這些小函數可能會消耗棧空間。引入了inline修飾函數,

叫内聯函數。在C中編譯器自動釋放棧空間放的局部變量等。棧是

有大小的可能會棧溢出。

例子:C++

#include

using namespace std;

inline string dbtest(int a);//函數原形聲明為inline即:内聯函數

void main()

{

 for (int i=1;i<=10;i++)

 {

  cout<<i<<":"<<dbtest(i)<<endl;

 }

 string dbtest(int a)//這裡不用再次加上inline

  return (a%2>0)?"奇":"偶";

}

上面的例子在編譯調用dbtest(i)時 會被(a%2>0)?"奇":"偶"替代

内聯函數具有宏定義和函數的優點,但沒有宏定義那樣能在預處理

時完成替換;也不能實作函數的遞歸調用。

繼續閱讀