關(guān)于內(nèi)聯(lián)函數(shù)說法正確的是 什么是內(nèi)聯(lián)函數(shù)?
什么是內(nèi)聯(lián)函數(shù)??jī)?nèi)聯(lián)函數(shù)具有通用函數(shù)的特點(diǎn),只有在函數(shù)調(diào)用的處理上不同于通用函數(shù)。調(diào)用一般函數(shù)時(shí),程序的執(zhí)行權(quán)應(yīng)轉(zhuǎn)移到被調(diào)用函數(shù),然后返回到調(diào)用它的函數(shù);調(diào)用內(nèi)聯(lián)函數(shù)時(shí),調(diào)用表達(dá)式由內(nèi)聯(lián)函數(shù)的主體替換
什么是內(nèi)聯(lián)函數(shù)?
內(nèi)聯(lián)函數(shù)具有通用函數(shù)的特點(diǎn),只有在函數(shù)調(diào)用的處理上不同于通用函數(shù)。調(diào)用一般函數(shù)時(shí),程序的執(zhí)行權(quán)應(yīng)轉(zhuǎn)移到被調(diào)用函數(shù),然后返回到調(diào)用它的函數(shù);調(diào)用內(nèi)聯(lián)函數(shù)時(shí),調(diào)用表達(dá)式由內(nèi)聯(lián)函數(shù)的主體替換。在使用內(nèi)聯(lián)函數(shù)時(shí),我們應(yīng)該注意以下幾點(diǎn):
1。內(nèi)聯(lián)函數(shù)中不允許使用循環(huán)語(yǔ)句和開關(guān)語(yǔ)句。
如果內(nèi)聯(lián)函數(shù)有這些語(yǔ)句,編譯器會(huì)將函數(shù)視為普通函數(shù)來生成函數(shù)調(diào)用代碼。遞歸函數(shù)(調(diào)用它們自己的函數(shù))不能用作內(nèi)聯(lián)函數(shù)。內(nèi)聯(lián)函數(shù)只適用于只有1-5行的小函數(shù)。對(duì)于包含許多語(yǔ)句的大型函數(shù),函數(shù)調(diào)用和返回的代價(jià)相對(duì)較小,因此不必使用內(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ù)?
不一定。
成員函數(shù)屬于對(duì)象,而靜態(tài)函數(shù)屬于類。如果函數(shù)是在類中定義的,則默認(rèn)情況下它將是一個(gè)內(nèi)聯(lián)函數(shù)。如果在聲明函數(shù)時(shí)給出函數(shù)的定義并添加關(guān)鍵字inline,則函數(shù)將成為inline函數(shù),否則它將成為成員函數(shù)