在c++中,為了解決一些頻繁調(diào)用的小函數(shù)大量消耗?臻g或者是叫棧內(nèi)存的問題,特別的引入了inline修飾符,表示為內(nèi)聯(lián)函數(shù)。 下面我們來看一個(gè)例子: #include <iostream> 上面的例子就是標(biāo)準(zhǔn)的內(nèi)聯(lián)函數(shù)的用法,使用inline修飾帶來的好處我們表面看不出來,其實(shí)在內(nèi)部的工作就是在每個(gè)for循環(huán)的內(nèi)部所有調(diào)用dbtest(i)的地方都換成了(i%2>0)?"奇":"偶"這樣就避免了頻繁調(diào)用函數(shù)對(duì)棧內(nèi)存重復(fù)開辟所帶來的消耗。 說到這里很多人可能會(huì)問,既然inline這么好,還不如把所謂的函數(shù)都聲明成inline,嗯,這個(gè)問題是要注意的,inline的使用是有所限制的,inline只適合函數(shù)體內(nèi)代碼簡(jiǎn)單的函數(shù)使用,不能包含復(fù)雜的結(jié)構(gòu)控制語句例如while switch,并且不能內(nèi)聯(lián)函數(shù)本身不能是直接遞歸函數(shù)(自己內(nèi)部還調(diào)用自己的函數(shù))。 說到這里我們不得不說一下在c語言中廣泛被使用的#define語句,是的define的確也可以做到inline的這些工作,但是define是會(huì)產(chǎn)生副作用的,尤其是不同類型參數(shù)所導(dǎo)致的錯(cuò)誤,由此可見inline有更強(qiáng)的約束性和能夠讓編譯器檢查出更多錯(cuò)誤的特性,在c++中是不推薦使用define的。 關(guān)于內(nèi)聯(lián)函數(shù)的更多例子我就不一一舉出了,靈活的使用也多靠學(xué)習(xí)者本身,我只在此拋磚引玉,讓大家盡可能多的學(xué)習(xí)到c++中的一些新的先進(jìn)的特性知識(shí)點(diǎn)。 |
正在閱讀:新手入門:關(guān)于C++中的內(nèi)聯(lián)函數(shù)(inline)新手入門:關(guān)于C++中的內(nèi)聯(lián)函數(shù)(inline)
2005-03-01 10:10
出處:PConline
作者:管寧
責(zé)任編輯:xietaoming
相關(guān)文章
百度領(lǐng)投“凱叔講故事” C輪融資 布局兒童內(nèi)容教育!
iPhone也可以享受18W快充 紫米蘋果C2L編織線降價(jià)
鋼琴鍵盤為什么C開始 C調(diào)是哪一個(gè)
云頂之弈單核熊王C陣容分享 單核熊王C玩法技巧
C盤清理助手怎么使用 C盤清理助手的使用方法
新iPhone有望再迎大變化:要用Type-C接口了?
“拍拍”再度易主:愛回收接手 原總經(jīng)理將另謀出路!
碧藍(lán)航線鐵血音符誓言C2:第二樂章極度的渴望陣容
全面戰(zhàn)爭(zhēng)三國(guó)呂布怎么招募 呂布招募流程方法分享
全面戰(zhàn)爭(zhēng)三國(guó)白龍軍屬性介紹 白龍軍特性介紹
302 Found
Powered by Tengine