inline函数和一般的函数有什么不同
生活随笔
收集整理的這篇文章主要介紹了
inline函数和一般的函数有什么不同
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
比如
int g(int x)
{
return x + x;
} int f()
{
return g();
} 這樣f會調用g,然后g返回x + x給f,然后f繼續把那個值返回給調用者。 如果g是inline的話。f會被直接編譯成。 int f()
{
return x + x;
} 相當于把g執行的操作直接融合到f里。這樣減少了調用g消耗的時間,但同時也增大了f的尺寸。 這就是inline函數,也就是所謂的內聯函數。 --------- 但是現在不是這樣了。 現在的編譯器會自動決定是否對函數進行上面的操作,而不是根據你前面加不加inline。 但是inline本身還是有另外一個意義: 一個可執行文件的cpp文件中一個函數只能被定義一次。如果你把函數定義在一個.h文件中并讓兩個cpp包含就會造成這個函數分別在兩個cpp中被定義產生錯誤。但是inline函數是允許在多個cpp中多次定義的,就解決了這個問題。
總結
以上是生活随笔為你收集整理的inline函数和一般的函数有什么不同的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据结构上机测试2-2:单链表操作B
- 下一篇: A Simple Job