inline function(內聯函式)

2021-06-29 15:32:00 字數 343 閱讀 7676

1. definition 

從源**的層次看,和函式的形式一樣,只是在函式前面用inline做了修飾。但是在編譯後,只是把函式體裡面的**代替函式名,而不像普通函式那樣呼叫前儲存現場,記住當前執行位址,呼叫後恢復現場等操作,所以執行效率高。

2. 使用時注意事項

遞迴函式,以及含有while, switch 等結構不能作為內聯函式,即使你用inline進行了修飾,編譯器也會把它處理成普通函式;應該先定義後使用

3. 和巨集的比較

從定義上看,內聯函式和巨集差不多,但有很大區別。巨集在執行時間上看是在編譯之前預處理之中進行的,而內聯函式是在編譯時進行的,進行**的替換,它克服了巨集容易產生的二義性。

內聯函式(inline function)

內聯函式定義 嵌入到主調函式中的函式,可以避免函式呼叫帶來的時間開銷 只要在函式宣告語句或者函式頭一處寫上 inline 關鍵字即可表示該函式是乙個內聯函式 要求 1.不能包括複雜的控制語句 2.不能包括遞迴呼叫語句 3.不能有太多的函式體語句 即使定義了inline 函式,但如果沒有達到上述要求的...

內聯函式(inline function)那些事

內聯函式 inline 內聯函式對於一般的人來說,沒什麼可講的,就那麼回事 反正就有那種說不清的感覺 有這種想法的人似乎和我一樣都是菜鳥級別的吧!今天看到乙個面試題 講一下內聯函式的含義 面試題 將以下 改為c語言 要求在.c檔案中能編譯通過 要提交.c檔案 將以下 改為c語言 要求在.c檔案中能編...

C 內聯函式 inline function

c 從c中繼承的乙個重要特徵就是效率。假如c 的效率明顯低於c的效率,那麼就會有很大的一批程式設計師不去使用c 了。在c中我們經常把一些短並且執行頻繁的計算寫成巨集,而不是函式,這樣做的理由是為了執行效率,巨集可以避免函式呼叫的開銷,這些都由預處理來完成。但是在c 出現之後,使用預處理巨集會出現兩個...