1、內聯函數的使用,幾個注意點;與#define對比
- 在函數聲明和定義前面加上inline ,而不是在調用的時候
- 是否成爲內聯函數看編譯器是否同意, 比如使用的是遞歸調用函數,編譯器不會將這個函數作爲內聯函數。
- 可以理解爲將函數原型替換調用代碼,但實際上又和define不同
#define cal2(a,b) a*b
inline int cal1(int a, int b)
{
return a* b;
}
int c = cal1(4 + 1, 9 + 1);
cout << " 內聯函數 : " << c << endl;
int d = cal2(4 + 1, 9 + 1);
cout << " 宏定義 : " << d << endl;
- 可以看出,內聯函數實際上還是一個傳值調用,但是 宏定義確實只是 簡單的替換而已。