• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            liyuxia713

            蹣跚前行者

            常用鏈接

            統(tǒng)計(jì)

            Algorithms

            C++

            最新評(píng)論

            宏與內(nèi)聯(lián)(inline)的區(qū)別(轉(zhuǎn)載)

            先轉(zhuǎn)載下人家總結(jié)的宏和普通函數(shù)調(diào)用的區(qū)別:
            (1)、宏只做簡(jiǎn)單的字符串替換,函數(shù)是參數(shù)傳遞,所以必然有參數(shù)類(lèi)型檢查(支持各種類(lèi)型,而不是只有字符串)。
            (2)、宏不經(jīng)計(jì)算而直接替換參數(shù),函數(shù)調(diào)用則是將參數(shù)表達(dá)式求值再傳遞給形參。
            (3)、宏在編譯前進(jìn)行,即先替換再編譯。而函數(shù)是編譯后,在執(zhí)行時(shí)才調(diào)用的。宏占編譯時(shí)間,而函數(shù)占執(zhí)行時(shí)間。
            (4)、宏參數(shù)不占空間,因?yàn)橹蛔鲎址鎿Q,而函數(shù)調(diào)用時(shí)參數(shù)傳遞是變量之間的傳遞,形參作為局部變量占內(nèi)存空間。
            (5)、函數(shù)調(diào)用需要保留現(xiàn)場(chǎng),然后轉(zhuǎn)入調(diào)用函數(shù)執(zhí)行,執(zhí)行完畢再返回主調(diào)函數(shù),這些耗費(fèi)在宏中是沒(méi)有的。


            使用宏和內(nèi)聯(lián)函數(shù)都可以節(jié)省在函數(shù)調(diào)用方面的時(shí)間和空間開(kāi)銷(xiāo)。二者都是為了提高效率,但是卻有著顯著的區(qū)別:
            (1)、在使用時(shí),宏只做簡(jiǎn)單的預(yù)處理器符號(hào)表(字符串)中的簡(jiǎn)單替換。而內(nèi)聯(lián)函數(shù)可以進(jìn)行參數(shù)類(lèi)型檢查,且具有返回值(也能被強(qiáng)制轉(zhuǎn)換為可轉(zhuǎn)換的合適類(lèi)型)。
            (2)、內(nèi)聯(lián)函數(shù)首先是函數(shù),函數(shù)的許多性質(zhì)都適用于內(nèi)聯(lián)函數(shù)(如內(nèi)聯(lián)函數(shù)可以重載)。
            (3)、內(nèi)聯(lián)函數(shù)可以作為某個(gè)類(lèi)的成員函數(shù),這樣可以使用類(lèi)的保護(hù)成員和私有成員。而當(dāng)一個(gè)表達(dá)式涉及到類(lèi)保護(hù)成員或私有成員時(shí),宏就不能實(shí)現(xiàn)了(無(wú)法將this指針?lè)旁诤线m位置)。


            可以用內(nèi)聯(lián)函數(shù)完全替代宏。
            但是在使用內(nèi)聯(lián)函數(shù)時(shí)也要注意:作為內(nèi)聯(lián)函數(shù),函數(shù)體必須十分簡(jiǎn)單,不能包含循環(huán),條件,選擇等復(fù)雜結(jié)構(gòu),否則不能作為內(nèi)聯(lián)函數(shù)。
            實(shí)際上,編譯器的優(yōu)化系統(tǒng)會(huì)自動(dòng)將一些簡(jiǎn)單函數(shù)變成內(nèi)聯(lián)函數(shù)。而一些復(fù)雜的函數(shù),即使指定為內(nèi)聯(lián),編譯器也會(huì)自動(dòng)當(dāng)作普通函數(shù)。

             

            文章出處:DIY部落(http://www.diybl.com/course/3_program/c++/cppxl/20081216/154041.html)

            posted on 2010-03-04 20:22 幸運(yùn)草 閱讀(1845) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): C++

            色欲综合久久躁天天躁| 麻豆av久久av盛宴av| 日本久久中文字幕| 青青草原1769久久免费播放| 久久久国产精品亚洲一区| 欧美精品国产综合久久| 狠狠色丁香久久婷婷综合_中| 国产精品成人精品久久久 | 久久精品国产色蜜蜜麻豆| 久久青青草原精品影院| 久久国产亚洲精品麻豆| 国产99久久久久久免费看| 九九久久精品无码专区| 深夜久久AAAAA级毛片免费看| 亚洲国产婷婷香蕉久久久久久| 要久久爱在线免费观看| 久久久无码精品亚洲日韩蜜臀浪潮| 精品久久人人爽天天玩人人妻| 亚洲成色www久久网站夜月| 国产精品久久久久久| 久久久综合香蕉尹人综合网| 思思久久99热免费精品6| 久久亚洲国产最新网站| 99久久超碰中文字幕伊人| 秋霞久久国产精品电影院| 色天使久久综合网天天| 日韩人妻无码精品久久久不卡| 久久青青草原国产精品免费| 亚洲国产成人精品久久久国产成人一区二区三区综| 久久综合伊人77777麻豆| 色欲久久久天天天综合网| 91精品日韩人妻无码久久不卡| 久久久免费观成人影院| 久久亚洲日韩精品一区二区三区| 一本一道久久精品综合| 人人狠狠综合久久88成人| 99久久国产综合精品五月天喷水| 久久伊人五月丁香狠狠色| 国产精品女同一区二区久久| 久久久婷婷五月亚洲97号色| 综合久久久久久中文字幕亚洲国产国产综合一区首 |