<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Calvin's Tech Space

    成于堅(jiān)忍,毀于浮躁

       :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      引入內(nèi)聯(lián)函數(shù)的目的是為了解決程序中函數(shù)調(diào)用的效率問題。

      函數(shù)是一種更高級(jí)的抽象。它的引入使得編程者只關(guān)心函數(shù)的功能和使用方 法,而不必關(guān)心函數(shù)功能的具體實(shí)現(xiàn);函數(shù)的引入可以減少程序的目標(biāo)代碼,實(shí)現(xiàn)程序代碼和數(shù)據(jù)的共享。但是,函數(shù)調(diào)用也會(huì)帶來降低效率的問題,因?yàn)檎{(diào)用函數(shù)實(shí)際上將程序執(zhí)行順序轉(zhuǎn)移到函數(shù)所存放在內(nèi)存中某個(gè)地址,將函數(shù)的程序內(nèi)容執(zhí)行完后,再返回到轉(zhuǎn)去執(zhí)行該函數(shù)前的地方。這種轉(zhuǎn)移操作要求在轉(zhuǎn)去前要保護(hù)現(xiàn) 場并記憶執(zhí)行的地址,轉(zhuǎn)回后先要恢復(fù)現(xiàn)場,并按原來保存地址繼續(xù)執(zhí)行。因此,函數(shù)調(diào)用要有一定的時(shí)間和空間方面的開銷,于是將影響其效率。特別是對(duì)于一些 函數(shù)體代碼不是很大,但又頻繁地被調(diào)用的函數(shù)來講,解決其效率問題更為重要。引入內(nèi)聯(lián)函數(shù)實(shí)際上就是為了解決這一問題。

      在程序編譯時(shí),編譯器將程序中出現(xiàn)的內(nèi)聯(lián)函數(shù)的調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)的函數(shù)體來進(jìn)行替換。顯然,這種做法不會(huì)產(chǎn)生轉(zhuǎn)去轉(zhuǎn)回的問題,但是由于在編譯時(shí)將函數(shù)休中的代碼被替代到程序中,因此會(huì)增加目標(biāo)程序代碼量,進(jìn)而增加空間開銷,而在時(shí)間代銷上不象函數(shù)調(diào)用時(shí)那么大,可見它是以目標(biāo)代碼的增加為代價(jià)來換取時(shí)間的節(jié)省。

      內(nèi)聯(lián)函數(shù)的定義方法

      定義內(nèi)聯(lián)函數(shù)的方法很簡單,只要在函數(shù)定義的頭前加上關(guān)鍵字inline即可。內(nèi)聯(lián)函數(shù)的定義方法與一般函數(shù)一樣。如:
    inline int add_int (int x, int y, int z)
    {
    return x+y+z;
    }
      在程序中,調(diào)用其函數(shù)時(shí),該函數(shù)在編譯時(shí)被替代,而不是像一般函數(shù)那樣是在運(yùn)行時(shí)被調(diào)用。

      使用內(nèi)聯(lián)函數(shù)應(yīng)注意的事項(xiàng)

      內(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ù)體來替換。在使用內(nèi)聯(lián)函數(shù)時(shí),應(yīng)注意如下幾點(diǎn):

      1.在內(nèi)聯(lián)函數(shù)內(nèi)不允許用循環(huán)語句和開關(guān)語句。

      2.內(nèi)聯(lián)函數(shù)的定義必須出現(xiàn)在內(nèi)聯(lián)函數(shù)第一次被調(diào)用之前。

      3.本欄目講到的類結(jié)構(gòu)中所有在類說明內(nèi)部定義的函數(shù)是內(nèi)聯(lián)函數(shù)。

    http://www.bccn.net/Article/kfyy/cjj/jszl/200603/3862.html



    posted on 2011-08-09 22:59 calvin 閱讀(286) 評(píng)論(0)  編輯  收藏 所屬分類: C++

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 一级女人18片毛片免费视频| 亚洲精品无码久久久久A片苍井空| 国产综合激情在线亚洲第一页| 性xxxxx免费视频播放| 亚洲视频免费在线播放| 国产成人精品免费视频大| 亚洲日本va午夜中文字幕一区| 国产免费爽爽视频在线观看| 亚洲AV永久无码精品成人| 野花香高清视频在线观看免费| 亚洲精品无码久久久久sm| a级毛片免费播放| 久久久久久亚洲精品| 免费人成视频在线观看网站| 久久亚洲精品成人AV| 免费下载成人电影| 亚洲女子高潮不断爆白浆| 全免费A级毛片免费看网站| 亚洲国产精品成人午夜在线观看| 日本xxwwxxww在线视频免费| 欧洲亚洲综合一区二区三区| 国产综合亚洲专区在线| 国产免费爽爽视频在线观看| 亚洲无成人网77777| 成年在线观看免费人视频草莓| 国产亚洲精品2021自在线| 亚洲中文字幕视频国产| 免费无码黄网站在线看| 亚洲综合成人网在线观看| 国产精品久久久久免费a∨| 自拍偷自拍亚洲精品播放| 中文字幕亚洲天堂| 美丽的姑娘免费观看在线播放 | 中文字幕亚洲一区二区三区| 久久久久国色av免费看| 亚洲第一成人在线| 免费一级做a爰片久久毛片潮喷| 中文在线日本免费永久18近| 亚洲国产精品久久久久秋霞影院| 免费的一级黄色片| a视频在线免费观看|