inline 這個名稱可以反映出它的工作方式,函數會在它所調用的位置上展開.這麼做可以消除函數調用和返回所帶來的開銷(寄存器存儲和恢復),而且,編譯器會把調用函數的代碼和函數本身放在一起進行優化,所以有進一步優化代碼的可能.
不過這麼做是有代價的,代碼會變長,這也就意味著占用更多的內存空間或者占用更多的指令緩存.
內核開發者通常把那些對時間要求比較高,而本身長度又比較短的函數定義成內聯函數.
內聯函數必須在使用之前就定義好,否則編譯器就沒法把這個函數展開,實踐中一般在頭文件中定義內聯函數.