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