內聯函式:
tip: 只有當函式只有 10 行甚至更少時才將其定義為內聯函式.
定義: 當函式被宣告為內聯函式之後, 編譯器會將其內聯展開, 而不是按通常的函式呼叫機制進行呼叫.
優點: 當函式體比較小的時候, 內聯該函式可以令目標**更加高效. 對於訪問函式以及其它函式體比較短, 效能關鍵的函式, 鼓勵使用內聯.
缺點: 濫用內聯將導致程式變慢. 內聯可能使目標**量或增或減, 這取決於內聯函式的大小. 內聯非常短小的訪問函式通常會減少**大小, 但內聯乙個相當大的函式將戲劇性的增加**大小. 現代處理器由於更好的利用了指令快取, 小巧的**往往執行更快。
結論: 乙個較為合理的經驗準則是, 不要內聯超過 10 行的函式. 謹慎對待析構函式, 析構函式往往比其表面看起來要更長, 因為有隱含的成員和基類析構函式被呼叫!
另乙個實用的經驗準則: 內聯那些包含迴圈或 switch 語句的函式常常是得不償失 (除非在大多數情況下, 這些迴圈或 switch 語句從不被執行).
有些函式即使宣告為內聯的也不一定會被編譯器內聯, 這點很重要; 比如虛函式和遞迴函式就不會被正常內聯. 通常, 遞迴函式不應該宣告成內聯函式.(遞迴呼叫堆疊的展開並不像迴圈那麼簡單, 比如遞迴層數在編譯時可能是未知的, 大多數編譯器都不支援內聯遞迴函式). 虛函式內聯的主要原因則是想把它的函式體放在類定義內, 為了圖個方便, 抑或是當作文件描述其行為, 比如精短的訪問函式.
lqd052
lqd052
172***[email protected]年前 (2017-07-28)
c 中內斂函式 C 內聯函式
內聯函式是指用inline關鍵字修飾的函式。在類內定義的函式被預設成內聯函式。實質就是當需要呼叫乙個內聯函式時,不是去呼叫而是將該函式 整段插入到需要使用該內聯函式的地方,從而省去呼叫過程,提高了執行速度。缺點由於每當 呼叫到內聯函式,就需要在呼叫處直接插入一段該函式的 所以程式的體積將會增大,消耗...
c 中內斂函式 C 中內聯函式
目錄 什麼是內聯函式 如何使函式內聯 為什麼要使用內聯函式 inline函式的優缺點分析 什麼時候該使用內聯函式 正文在c語言中,我們使用巨集定義函式這種借助編譯器的優化技術來減少程式的執行時間,那麼在c 中有沒有相同的技術或者更好的實現方法呢?答案是有的,那就是內聯函式。內聯函式作為編譯器優化手段...
c 中內斂函式 C 中的內聯函式分析
子宇24 1 本節課學習 c 中才引入的新的概念,內聯函式 2 常量與巨集回顧 3 內聯函式用法 1 inline int func int a,int b 2 內聯函式在表現形式上和普通函式一樣,但是它會被編譯器進行優化,編譯器直接將內聯函式的函式體進行擴充套件,這個擴充套件由編譯器直接將生成的 ...