1.概念:
內聯類似于宏定義,當程序執行到內聯函數時,相當于復制了一份函數代碼。犧牲代碼空間,贏得了時間
內聯說明只是向編譯器發出一個請求,編譯器可以選擇忽略這個請求
2.關鍵字:inline
聲明時寫了inline,定義時可省略。建議聲明和定義都加上inline
inline int add(int a,int b)
{
return a+b;
}
3.內聯的優、缺點:
優點:避免了函數調用的開銷,加快了代碼的運行速度,避免頻繁調用函數對棧內存帶來的消耗
缺點:浪費代碼空間
4.使用內聯的情況
不宜使用內聯的情況:遞歸函數、或函數中含有循環結構(浪費時間)、或函數代碼過長(消耗內存)
可使用內聯的情況:內聯一般在類中使用(函數內進行簡單的賦值、或直接返回數據、或1~5條小語句)
內聯函數定義建議放在頭文件中,但是不強制要求
總結:內聯機制用于優化規模較小,流程直接,頻繁調用的函數
5.顯式內聯、隱式內聯
隱式內聯:結構體或類中的函數在結構體中聲明并定義,并且如果這個函數不復雜,那么其是隱式內聯的(編譯器自動