內聯函式的優缺點
說明:內聯函式發生在程式的編譯期間,多對於重複利用,程式執行又比較簡短的,大大增大**執行
效率。
優點:1)inline定義的內聯函式,函式**被放入符號表中,在使用時進行替換(像巨集一樣展開),效率很高
2)類的內聯函式也是函式。編繹器在呼叫乙個內聯函式,首先會檢查引數問題,保證呼叫正確,像對待
真正函式一樣,消除了隱患及侷限性。
3)inline可以作為類的成員函式,也可以使用所在類的保護成員及私有成員。
缺點:
1)
內聯函式以複製為代價,活動產函式開銷
2)如果函式的**較長,使用內聯將消耗過多記憶體
3)如果函式體內有迴圈,那麼執行函式**時間比呼叫開銷大。
內聯 inline 函式的優缺點
最近在看linuxkernel development,這本書主要是講了linux核心的概念,對於整體的框架有了乙個描述,這裡記錄下看到的一些有用的東西,便於以後整理。inline這個名稱就可以反映出它的工作方式,函式會在它所呼叫的位置上展開。這麼做可以消除函式呼叫和返回所帶來的開銷 暫存器儲存和恢...
內聯的優缺點
內聯函式是指用inline關鍵字修飾的函式。在類內定義的函式被預設成內聯函式。內聯函式從源 層看,有函式的結構,而在編譯後,卻不具備函式的性質。內聯函式不是在呼叫時發生控制轉移,而是在編譯時將函式體嵌入在每乙個呼叫處。編譯時,類似巨集替換,使用函式體替換呼叫處的函式名。一般在 中用inline修飾,...
C 中巨集與內聯函式的優缺點
巨集 為什麼要使用巨集呢?因為函式的呼叫必須要將程式執行的順序轉移到函式所存放在記憶體中的某個位址,將函式的程式內容執行完後,再返回到轉去執行該函式前的地方。這種轉移操作要求在轉去執行前要儲存現場並記憶執行的位址,轉回後要恢復現場,並按原來儲存位址繼續執行。因此,函式呼叫要有一定的時間和空間方面的開...