內聯函數

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章