C 中的inline函式

2021-10-03 20:47:54 字數 726 閱讀 4748

**1、inline函式的處理流程:**在函式的呼叫點直接進行**的替換。

2、inline函式和普通函式的區別

(1)普通函式有函式的堆疊和清棧。

(2)inline函式由於**的直接展開,所以沒有堆疊和清棧,效率會更高。

3、inline函式和巨集的區別

(1)巨集在預編譯階段,沒有型別和安全檢查。

(2)inline函式在編譯階段,有型別和安全檢查。inline可以說是一種更安全的巨集。

4、inline函式和static的區別:

(1)static函式只能在本檔案中呼叫,這是它與普通函式的區別,其他都與普通函式一樣,所以它有函式的堆疊清棧過程。

(2)inline函式沒有函式的堆疊清棧的過程。

5、為什麼函式設計過程中不能把所有函式預設設為inline函式?

這也是/inline函式的缺陷----->inline函式只是空間換時間的概念設計,如果處理不當,檔案就會變得很龐大。

6、inline函式的建議

(1)什麼時候用?

如果函式的體積小,處理流程較短,函式的堆疊清棧開銷大於函式執行的開銷。

(2)什麼時候不用?

如果函式的題體積較大,處理流程較長,函式的堆疊清棧開銷小於函式執行的開銷。

C 中的inline函式

在函式名字前面加上inline,該函式就被宣告為內建函式。每當程式中出現對該函式的呼叫時,c 編譯器使用函式體中的代 碼插入到呼叫該函式的語句之處,而不是將流程轉出去,同時用實參代替形參,以便在程式執行時不再進行函式呼叫。引入內建函式的目的就是 消除函式呼叫時系統開銷,以提高執行速度。減少程式執行過...

C 中的inLine函式

一 inline函式 摘自c primer的第三版 在函式宣告或定義中函式返回型別前加上關鍵字inline即把min 指定為內聯。inline int min int first,int secend inline 函式對編譯器而言必須是可見的,以便它能夠在呼叫點內展開該函式。與非inline函式不...

inline函式 C 內聯函式 inline

inline要起作用,必須要與函式定義放在一起,而不是函式的宣告 inline 當編譯器處理呼叫內聯函式的語句時,不會將該語句編譯成函式呼叫的指令,而是直接將整個函式體的 插人呼叫語句處,就像整個函式體在呼叫處被重寫了一遍一樣,在執行時是順序執行,而不會進行跳轉。優點 內聯函式沒有執行函式呼叫的開銷...