這裡先說一下函式呼叫的實現過程:
由上面函式呼叫步驟來看,函式呼叫過程中的來回跳轉需要一定的時間開銷,內聯函式就是用來減少這部分的時間開銷來加快函式執行速度。
對於內聯函式,程式無須調到另乙個位置來執行**再跳回來,內聯函式的執行速度比常規函式稍快,但代價是需要占用更多記憶體空間。如果**執行時間很短,則內聯呼叫就可以節省大部分時間。但是由於這個過程相當快,儘管節省了該過程的大部分時間,但節省的時間絕對值並不大。
使用內聯函式:
函式宣告前加關鍵字
inline
或函式定義前加關鍵字
inline
大部分時候我們使用後者
程式設計師在請求使用內聯函式的時候,編譯器並不一定會滿足這種需求,在它認為函式中呼叫自己的時候不能將其作為內聯函式(內聯函式不能遞迴)。
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出現時,巨集就會歪曲我們的意思...