inline內聯函數 什么是內聯函數?
什么是內聯函數?內聯函數具有通用函數的特點,只有在函數調用的處理上不同于通用函數。調用一般函數時,程序的執(zhí)行權應轉移到被調用函數,然后返回到調用它的函數;調用內聯函數時,調用表達式由內聯函數的主體替換
什么是內聯函數?
內聯函數具有通用函數的特點,只有在函數調用的處理上不同于通用函數。調用一般函數時,程序的執(zhí)行權應轉移到被調用函數,然后返回到調用它的函數;調用內聯函數時,調用表達式由內聯函數的主體替換。在使用內聯函數時,我們應該注意以下幾點:
1。內聯函數中不允許使用循環(huán)語句和開關語句。
如果內聯函數有這些語句,編譯器會將函數視為普通函數來生成函數調用代碼。遞歸函數(調用它們自己的函數)不能用作內聯函數。內聯函數只適用于只有1-5行的小函數。對于包含許多語句的大型函數,函數調用和返回的代價相對較小,因此不必使用內聯函數。
2. 內聯函數的定義必須在第一次調用內聯函數之前出現。
3. 在本專欄中提到的類結構中,類描述中定義的所有函數都是內聯函數。
什么是內聯函數啊~和普通的成員函數有什么區(qū)別嗎?
內聯函數定義:將函數定義為內聯函數就是在程序中的每個調用點將其“內聯”展開。在函數返回類型之前添加inline關鍵字。在類聲明中定義的成員函數自動成為內聯函數。內聯函數的應用:
1。重復調用函數;
2。函數只有幾行,不包含for、while和switch語句。內聯函數應該在頭文件中定義,這與其他函數不同。
普通函數與內聯函數有什么區(qū)別?
1. 編譯結果是不同的:內聯函數(有時稱為在線函數或編譯時的擴展函數)是一種編程語言結構,用于建議編譯器在線擴展某些特殊函數(有時稱為在線擴展);換句話說,建議編譯器插入指定的函數體并替換調用函數的每個位置(上下文)。普通函數被編譯為單獨的模塊。
2. 編譯時間不同:對于基于C的編譯系統(tǒng),使用內聯函數可能會大大增加編譯時間,因為調用函數的每個地方都需要用函數體來代替,代碼量的增加也會帶來編譯時間的潛在增加。
3. 運行效率不同:在使用內聯函數時,必須平衡程序占用的空間和程序執(zhí)行的效率,因為太多復雜的函數會帶來大量的存儲資源。源:-函數源:-內聯函數