1.內聯相對於宏的優點
2.爲什麼“inline”只是程序員對編譯器的建議(而非強制命令)
在C、C++中函數調用需要少量開銷。有時候這少量開銷積少成多,對程序性能造成影響。有時候函數本身很簡單,函數調用的開銷比執行函數內容本身的開銷還大。C程序員一定知道可以採用宏(Macro)機制來改善上述情況。但是宏基本上是在預編譯階段做文本替換,因此它有以下缺陷:
1.它無法進行類型檢查;
2.傳入有副作用(side effect)的表達式作爲參數可能引起微妙的程序臭蟲;
3.無法單步調試。
4.代碼膨脹。
內聯機制被引入C++作爲對宏(Macro)機制的改進和補充(不是取代)。內聯函數的參數傳遞機制與普通函數相同。但是編譯器會在每處調用內聯函數的地方將內聯函數的內容展開。這樣既避免了函數調用的開銷又沒有宏機制的前三個缺陷。
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/jia_xiaoxin/archive/2008/11/08/3255012.aspx