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