C 學習(二十九)內聯inline

2021-09-24 17:19:33 字數 401 閱讀 9005

內聯函式適用能夠快速執行的函式,此時使用內聯省去了函式的呼叫開銷。內聯函式像巨集一樣都是在編譯期展開,內嵌到呼叫處。

inline省去普通函式的壓棧和call,以空間換時間,僅僅省去了函式呼叫的開銷

當函式體比較小的時候, 內聯該函式可以令目標**更加高效. 對於訪問函式以及其它函式體比較短, 效能關鍵的函式, 鼓勵使用內聯.

乙個較為合理的經驗準則是, 不要內聯超過 10 行的函式. 謹慎對待析構函式, 析構函式往往比其表面看起來要更長, 因為有隱含的成員和基類析構函式被呼叫!

不足:1、增加編譯時間

2、增加軟體大小,對於嵌入式等空間緊張情況下應減少使用

3、導致指令快取不夠用,會頻繁的發生l1s miss,訪問l2、l3甚至是主存。而且,**段一大,很容易造成stlb的miss,被迫訪問主存

黑板模式(二十九)

黑板模式 blackboarddesignpattern 是觀察者模式的乙個擴充套件,知名度並不高,但是我們使用的範圍卻非常廣。黑板模式的意圖如下 允許訊息的讀寫同時進行,廣泛地互動訊息。簡單地說,黑板模式允許多個訊息讀寫者同時存在,訊息的生產者和消費者完全分開。這就像乙個黑板,任何乙個教授 訊息的...

C 學習筆記(二十九 ) 之string容器

老規矩 妹妹鎮樓 c 標準庫定義了一種string類,定義在標頭檔案 string 中。1.char是乙個指標,string是乙個類string封裝了char,管理這個字串,是乙個char 型的容器。2.string封裝了很多實用的成員方法查詢find,拷貝copy,刪除delete 替換repla...

二十九 直譯器模式

直譯器模式 interpreter 給定乙個語言,定義它的文法的一種表示,並定義乙個直譯器,這個直譯器使用該表示來解釋語言中的句子。知識點 字串匹配,判斷email,匹配 號碼等等。正規表示式就是直譯器模式的一種應用。直譯器模式容易的改變和擴充套件方法。直譯器模式為文法中的每一條規則至少定義了乙個類...