C 內聯函式概述

2021-10-12 13:02:05 字數 1022 閱讀 5974

inline是c++語言中的乙個關鍵字,可以用於程式中定義內聯函式,inline的引進使內聯函式的定義更加簡單。引入內聯函式的目的是為了解決程式中函式呼叫的效率問題。

內聯函式是c++中的一種特殊函式,它可以像普通函式一樣被呼叫,但是在呼叫時並不通過函式呼叫的機制而是通過將函式體直接插入呼叫處來實現的,這樣可以大大減少由函式呼叫帶來的開銷,從而提高程式的執行效率。一般來說inline用於定義類的成員函式,用於類內定義時,可以省略inline。

1.非類內內聯函式

#include

using

namespace std;

inline

intmax

(int x,

int y)

// 程式的主函式

intmain()

2.類內內聯函式,可以省略inline,注意如果是類內宣告,類外定義函式時,必須新增inline關鍵字

class

temp

//普通成員函式,在類內定義時前面可以不加inline

void

print_amount()

}

1、inline 定義的類的內聯函式,函式的**被放入符號表中,在使用時直接進行替換,(像巨集一樣展開),沒有了呼叫的開銷,效率也很高。也不是所有的內聯函式都會如此提高效率,編譯器會做判斷,如果函式**簡單,就會採用以上的形式, 避免壓棧、跳轉、返回的額外開銷;

2、如果函式包含了複雜的業務,那麼即使定義為內聯函式,編譯器也還是按非內聯函式處理;

3、在函式宣告出加inline關鍵字定義為內聯函式,並且在函式定義時也要加inline,否則編譯器會直接忽略內聯請求。

4、c++內聯編譯限制:

(1)不能存在任何形式的迴圈語句、判斷語句

(2)函式體不能過於龐大

(3)不能對函式進行取址操作

(4)函式內聯宣告必須在呼叫語句之前

5、即使有上述限制,當函式體的執行開銷遠大於壓棧、跳轉和返回的開銷時,那麼內聯將無意義。

C 內聯函式

1 什麼是內聯函式?內聯函式就是小型函式,犧牲空間來節省函式呼叫的開銷,一般用作比較小的函式,即函式內部沒有迴圈 開關語句等。內聯函式被發明出來就是為了取代c中的巨集,因為巨集是單純的替換而沒有型別檢查所以經常出毛病,2 為什麼要引入內聯函式?當然,引入內聯函式的主要目的是 解決程式中函式呼叫的效率...

C 內聯函式

1 什麼是內聯函式?2 為什麼要引入內聯函式?3 為什麼inline能取代巨集?4 內聯函式和巨集的區別?5 什麼時候用內聯函式?6 如何使用內聯函式?7 內聯函式的優缺點?8 如何禁止函式進行內聯?9 注意事項 1 什麼是內聯函式?內聯函式是指那些定義在類體內的成員函式,即該函式的函式體放在類體內...

c 內聯函式

1 什麼是內聯函式?內聯函式是指那些定義在類體內的成員函式,即該函式的函式體放在類體內。2 為什麼要引入內聯函式?當然,引入內聯函式的主要目的是 解決程式中函式呼叫的效率問題。另外,前面我們講到了巨集,裡面有這麼乙個例子 define abs x x 0?x x 當 i出現時,巨集就會歪曲我們的意思...