C 內聯函式

2021-09-14 00:32:25 字數 916 閱讀 9137

函式宣告inline《返回值型別》 《函式名》(《形參列表》);

函式定義inline《返回值型別》 《函式名》(《形參列表》)

普通函式呼叫時,通過位址跳轉來執行被調函式的指令,函式指令執行完畢後,要返回主調函式,所以,要儲存主調函式的位址,這樣,才可以在被調函式呼叫完畢之後,返回主調函式

與普通函式不同,內聯函式的呼叫,直接用函式指令替換替換呼叫(與c中的巨集類似,但不完全一樣)

如果乙個內聯函式過於複雜,或者遞迴呼叫自己,則會被編譯器當作普通函式

呼叫時,不會有跳轉位址,儲存位址這類的操作,執行效率高

因為替換了呼叫語句,如果原始檔大量的呼叫內聯函式,就會程式會占用大量記憶體

對於不頻繁呼叫的函式,將它宣告為內聯函式可以提高執行效率; 對於頻繁呼叫的函式,應該使用普通函式

巨集沒有引數型別,內聯函式有形參列表

使用巨集要加各種括號,否則會引發一些其他的***

內聯函式內的自動變數有**塊作用域,所以,對於f(x--)可以按照預定計畫執行

對於巨集 f(x) ((x--)*(x--));如果呼叫,就會因為x--的***,使得結果和預想的不一樣

內聯函式的鏈結屬性為內部,所以,在使用內聯函式的每乙個檔案中都需要定義宣告。

一般將內聯函式的定義放到標頭檔案而不是cpp檔案,這樣,保證使用內聯函式時都會有定義

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出現時,巨集就會歪曲我們的意思...