比如
int g(int x)
{
return x + x;
}
int f()
return g();
這樣f會調用g,然後g傳回x + x給f,然後f繼續把那個值傳回給調用者。
如果g是inline的話。f會被直接編譯成。
相當于把g執行的操作直接融合到f裡。這樣減少了調用g消耗的時間,但同時也增大了f的尺寸。
這就是inline函數,也就是所謂的内聯函數。
---------
但是現在不是這樣了。
現在的編譯器會自動決定是否對函數進行上面的操作,而不是根據你前面加不加inline。
但是inline本身還是有另外一個意義:
一個可執行檔案的cpp檔案中一個函數隻能被定義一次。如果你把函數定義在一個.h檔案中并讓兩個cpp包含就會造成這個函數分别在兩個cpp中被定義産生錯誤。但是inline函數是允許在多個cpp中多次定義的,就解決了這個問題。