應(yīng)該是c++中才有的,inline 關(guān)鍵字用來(lái)定義一個(gè)類的內(nèi)聯(lián)函數(shù),引入它的主要原因是用它替代C中表達(dá)式形式的宏定義。
東區(qū)網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),東區(qū)網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為東區(qū)1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的東區(qū)做網(wǎng)站的公司定做!
其實(shí)看你用得編譯器了,如果你用的VC++0的話, 不管是.C文件還是.CPP文件都可以用inline 定義內(nèi)聯(lián)函數(shù)。
內(nèi)聯(lián)函數(shù)一般適合于不存在while和switch等復(fù)雜的結(jié)構(gòu)且只有1~5條語(yǔ)句的小函數(shù)上,否則編譯系統(tǒng)將該函數(shù)視為普通函數(shù)。內(nèi)聯(lián)函數(shù)只能先定義后使用,否則編譯系統(tǒng)也會(huì)把它認(rèn)為是普通函數(shù)。
C語(yǔ)言中的函數(shù)可以分為以下幾類:內(nèi)置函數(shù):這些是由C語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供的函數(shù),例如數(shù)學(xué)函數(shù)、字符串函數(shù)等。自定義函數(shù):這些是由程序員自己定義的函數(shù),可以用來(lái)實(shí)現(xiàn)特定的功能。
1、使用高度頻繁,而且操作內(nèi)容簡(jiǎn)單的情況下,用inline函數(shù)。這樣可以解決一些頻繁調(diào)用的函數(shù)大量消耗棧空間(棧內(nèi)存)的問(wèn)題。關(guān)鍵字inline必須與函數(shù)定義放在一起才能使函數(shù)成為內(nèi)聯(lián)函數(shù),僅僅將inline放在函數(shù)聲明前面不起任何作用。
2、在內(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ù)。
3、內(nèi)聯(lián)函數(shù)就是在程序編譯時(shí),編譯器將程序中出現(xiàn)的內(nèi)聯(lián)函數(shù)的調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)的函數(shù)體來(lái)代替。 內(nèi)聯(lián)函數(shù)的實(shí)現(xiàn) 定義內(nèi)聯(lián)函數(shù)的方法很簡(jiǎn)單。只要在函數(shù)定義的頭前面加上關(guān)鍵字inline即可。其它與函數(shù)定義相同。
這個(gè)是內(nèi)聯(lián)函數(shù)。C語(yǔ)言本身是不支持內(nèi)聯(lián)函數(shù)的,在最新的C標(biāo)準(zhǔn)C99中C語(yǔ)言支持了內(nèi)聯(lián)函數(shù)。C++支持內(nèi)聯(lián)函數(shù)。從編譯器的角度:有些C語(yǔ)言編譯器,例如GNU C提供了內(nèi)聯(lián)函數(shù)的支持。所有C++編譯器都支持內(nèi)聯(lián)函數(shù)。
有的。不過(guò)C語(yǔ)言的內(nèi)聯(lián)函數(shù)是在最新的C99標(biāo)準(zhǔn)里才加入的,在以前的C89標(biāo)準(zhǔn)里是沒(méi)有的。
遞歸函數(shù)不能定義為內(nèi)聯(lián)函數(shù) 內(nèi)聯(lián)函數(shù)一般適合于不存在while和switch等復(fù)雜的結(jié)構(gòu)且只有1~5條語(yǔ)句的小函數(shù)上,否則編譯系統(tǒng)將該函數(shù)視為普通函數(shù)。內(nèi)聯(lián)函數(shù)只能先定義后使用,否則編譯系統(tǒng)也會(huì)把它認(rèn)為是普通函數(shù)。