在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)?"奇":"偶"替代
内聯函數具有宏定義和函數的優點,但沒有宏定義那樣能在預處理
時完成替換;也不能實作函數的遞歸調用。