2 回答

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊
常見(jiàn)編譯器都有這個(gè)功能,比如說(shuō)
VS的/GL (Whole Program Optimization)編譯選項(xiàng).
我相信其他主流編譯器,比如gcc,icc都會(huì)有這樣的優(yōu)化。

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超9個(gè)贊
內(nèi)聯(lián)函數(shù)具有一般函數(shù)的特性,它與一般函數(shù)所不同之處只在于函數(shù)調(diào)用的處理。一般函數(shù)進(jìn)行調(diào)用時(shí),要將程序執(zhí)行權(quán)轉(zhuǎn)到被調(diào)用函數(shù)中,然后再返回到調(diào)用它的函數(shù)中;而內(nèi)聯(lián)函數(shù)在調(diào)用時(shí),是將調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)體來(lái)替換。在使用內(nèi)聯(lián)函數(shù)時(shí),應(yīng)注意如下幾點(diǎn):
1.在內(nèi)聯(lián)函數(shù)內(nèi)不允許用循環(huán)語(yǔ)句和開關(guān)語(yǔ)句?!∪绻麅?nèi)聯(lián)函數(shù)有這些語(yǔ)句,則編譯將該函數(shù)視同普通函數(shù)那樣產(chǎn)生函數(shù)調(diào)用代碼,遞歸函數(shù)(自己調(diào)用自己的函數(shù))是不能被用來(lái)做內(nèi)聯(lián)函數(shù)的。內(nèi)聯(lián)函數(shù)只適合于只有1~5行的小函數(shù)。對(duì)一個(gè)含有許多語(yǔ)句的大函數(shù),函數(shù)調(diào)用和返回的開銷相對(duì)來(lái)說(shuō)微不足道,所以也沒(méi)有必要用內(nèi)聯(lián)函數(shù)實(shí)現(xiàn)。
2.內(nèi)聯(lián)函數(shù)的定義必須出現(xiàn)在內(nèi)聯(lián)函數(shù)第一次被調(diào)用之前。
3.類結(jié)構(gòu)中所有在類說(shuō)明內(nèi)部定義的函數(shù)是內(nèi)聯(lián)函數(shù)。
- 2 回答
- 0 關(guān)注
- 160 瀏覽
添加回答
舉報(bào)