Inline軟件介紹
在c++中,用戶(hù)可以創(chuàng)建實(shí)際上不調(diào)用的短函數(shù),它們的代碼在每次調(diào)用的程序行得到擴(kuò)展,這個(gè)過(guò)程類(lèi)似于使用類(lèi)函數(shù)的宏,為了使一個(gè)函數(shù)在程序行內(nèi)進(jìn)行代碼擴(kuò)展而不被調(diào)用,只要在函數(shù)前面加上inline關(guān)鍵字即可
Inline 對(duì)于編譯器來(lái)說(shuō)是一種請(qǐng)求,而不是命令
在類(lèi)聲明內(nèi)定義短函數(shù)是有可能的,如果一個(gè)函數(shù)是在類(lèi)聲明內(nèi)定義的,它將被自動(dòng)轉(zhuǎn)換為內(nèi)聯(lián)函數(shù),沒(méi)有必要在函數(shù)聲明之前加上inline 關(guān)鍵字,構(gòu)造函數(shù)和析構(gòu)函數(shù)也可以是內(nèi)聯(lián)函數(shù)。
Inline軟件特色
(1)內(nèi)聯(lián)函數(shù)的作用
●對(duì)于內(nèi)聯(lián)函數(shù),C++有可能直接用函數(shù)體代碼來(lái)替代對(duì)函數(shù)的調(diào)用,這一過(guò)程稱(chēng)為函數(shù)體的內(nèi)聯(lián)展開(kāi)。
●對(duì)于只有幾條語(yǔ)句的小函數(shù)來(lái)說(shuō),與函數(shù)的調(diào)用、返回有關(guān)的準(zhǔn)備和收尾工作的代碼往往比函數(shù)體本身的代碼要大得多。因此,對(duì)于這類(lèi)簡(jiǎn)單的、使用頻繁的小函數(shù),將之說(shuō)明為內(nèi)聯(lián)函數(shù)可提高運(yùn)行效率。 [3]
(2)慎用內(nèi)聯(lián)函數(shù)
內(nèi)聯(lián)是以代碼膨脹復(fù)制為代價(jià),僅僅省去了函數(shù)調(diào)用的開(kāi)銷(xiāo),從而提高函數(shù)的執(zhí)行效率。如果執(zhí)行函數(shù)體內(nèi)代碼的時(shí)間,相比于函數(shù)調(diào)用的開(kāi)銷(xiāo)較大,那么效率的收獲會(huì)很少。另一方面,每一處內(nèi)聯(lián)函數(shù)的調(diào)用都要復(fù)制代碼, 將使程序的總代碼量增大,消耗更多的內(nèi)存空間。以下情況不宜使用內(nèi)聯(lián):
1)如果函數(shù)體內(nèi)的代碼比較長(zhǎng),使用內(nèi)聯(lián)將導(dǎo)致內(nèi)存消耗代價(jià)較高。
2)如果函數(shù)體內(nèi)出現(xiàn)循環(huán),那么執(zhí)行函數(shù)體內(nèi)代碼的時(shí)間要比函數(shù)調(diào)用的開(kāi)銷(xiāo)大。
Inline軟件優(yōu)勢(shì)
引入inline關(guān)鍵字的原因
在c/c++中,為了解決一些頻繁調(diào)用的小函數(shù)大量消耗??臻g(棧內(nèi)存)的問(wèn)題,特別的引入了inline修飾符,表示為內(nèi)聯(lián)函數(shù)。
??臻g就是指放置程序的局部數(shù)據(jù)(也就是函數(shù)內(nèi)數(shù)據(jù))的內(nèi)存空間。
在系統(tǒng)下,??臻g是有限的,假如頻繁大量的使用就會(huì)造成因??臻g不足而導(dǎo)致程序出錯(cuò)的問(wèn)題,如,函數(shù)的死循環(huán)遞歸調(diào)用的最終結(jié)果就是導(dǎo)致棧內(nèi)存空間枯竭。
Inline更新日志
1.對(duì)部分功能進(jìn)行了優(yōu)化
2.解了好多不能忍的bug
華軍小編推薦:
什么?還沒(méi)用過(guò)Inline,你知不知道你的好朋友都在用?快來(lái)下載吧。小編還為您準(zhǔn)備Maven、OpenCart、Java2 Runtime Environment、Eclipse IDE for Java EE Developers For Linux(64-bit)、GCC For Linux
您的評(píng)論需要經(jīng)過(guò)審核才能顯示
有用
有用
有用