inline函式和一般的函式有什麼不同

2021-07-11 03:57:57 字數 472 閱讀 9242

比如 

int g(int x)

int f()

這樣f會呼叫g,然後g返回x + x給f,然後f繼續把那個值返回給呼叫者。

如果g是inline的話。f會被直接編譯成。

int f()

相當於把g執行的操作直接融合到f裡。這樣減少了呼叫g消耗的時間,但同時也增大了f的尺寸。

這就是inline函式,也就是所謂的內聯函式。

---------

但是現在不是這樣了。

現在的編譯器會自動決定是否對函式進行上面的操作,而不是根據你前面加不加inline。

但是inline本身還是有另外乙個意義:

乙個可執行檔案的cpp檔案中乙個函式只能被定義一次。如果你把函式定義在乙個.h檔案中並讓兩個cpp包含就會造成這個函式分別在兩個cpp中被定義產生錯誤。但是inline函式是允許在多個cpp中多次定義的,就解決了這個問題。

建構函式和一般函式

建構函式 構建創造物件時呼叫的函式,作用 可以給物件進行初始化。建立物件都必須要通過建構函式初始化。如果乙個類中沒有定義建構函式,那麼該類中就會有乙個預設的無參建構函式。如果在類中定義了指定的建構函式,那麼類中的預設建構函式就沒有了。建構函式和一般函式有什麼區別呢?建構函式 物件建立時,就會呼叫與之...

成員函式 友元函式和一般函式有區別

程式的版權和版本宣告部分 檔名稱 a.cpp 作 者 孔雲 完成日期 2014年4月10日 版 本 號 v1.0 輸入描述 兩點的座標點。問題描述 利用成員函式 友元函式和一般函式,實現三個版本的兩點間距離的函式,設計並在main 函式中完成測試。輸出描述 兩點間的距離。include includ...

成員函式,友元函式和一般函式 有區別。

檔名稱 main.cpp 作 者 隋文韜 完成日期 2016年4月21日 版 本 號 v1.0 問題描述 成員函式,友元函式和一般函式的區別 includeusing namespace std class time void display1 display1是成員函式 friend void d...