• <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++

            97久久精品午夜一区二区| 色欲综合久久中文字幕网| 久久国产成人精品麻豆| 97精品伊人久久久大香线蕉 | 色综合久久天天综线观看| 日本加勒比久久精品| 久久久久久无码Av成人影院| 久久r热这里有精品视频| 无码任你躁久久久久久| 精品国产VA久久久久久久冰| 久久久国产精品| 国产成人久久精品一区二区三区| 久久精品国产99国产精品| 热re99久久6国产精品免费| 久久久久国产精品麻豆AR影院| 国产成人精品综合久久久| 久久国产香蕉视频| 国产精品久久久福利| 国产香蕉久久精品综合网| 久久久国产精品福利免费| 亚洲中文字幕久久精品无码APP| 久久精品国产亚洲5555| 99国产精品久久| 久久久久亚洲AV无码永不| 人人妻久久人人澡人人爽人人精品| 国产精品va久久久久久久| 久久国产精品77777| 久久水蜜桃亚洲av无码精品麻豆| 亚洲中文字幕伊人久久无码| 久久精品中文字幕一区| 色噜噜狠狠先锋影音久久| 国产成人久久精品一区二区三区| 人妻精品久久久久中文字幕69| 亚洲人AV永久一区二区三区久久| 久久久艹| 久久精品国产亚洲AV不卡| 久久久久亚洲av成人网人人软件 | 亚洲美日韩Av中文字幕无码久久久妻妇 | 国产美女亚洲精品久久久综合| 狠狠色丁香久久婷婷综合_中| 性高朝久久久久久久久久|