• <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)草 閱讀(1836) 評(píng)論(0)  編輯 收藏 引用 所屬分類(lèi): C++

            香蕉99久久国产综合精品宅男自 | 99久久99久久精品国产| 久久99热狠狠色精品一区| 国内精品伊人久久久久| 久久精品亚洲福利| 久久午夜无码鲁丝片| 91精品国产高清久久久久久国产嫩草| 久久久久久噜噜精品免费直播| 久久久久久国产精品无码下载 | 女人香蕉久久**毛片精品| 久久久久人妻一区精品果冻| 伊人久久精品无码二区麻豆| 色综合久久精品中文字幕首页| 久久免费看黄a级毛片| 久久精品成人| 国产精品视频久久久| 亚洲午夜无码久久久久| 精品久久久久久国产免费了| 婷婷伊人久久大香线蕉AV| 开心久久婷婷综合中文字幕| 天天久久狠狠色综合| 久久婷婷五月综合色高清| 久久国产色av免费看| 久久久久一本毛久久久| 久久综合九色综合久99| 久久久久久毛片免费播放| 久久久久久精品免费免费自慰| 久久久噜噜噜久久| 久久伊人五月天论坛| 久久强奷乱码老熟女| 欧美激情精品久久久久久久| 天天综合久久久网| 国产香蕉97碰碰久久人人| 国产精自产拍久久久久久蜜| 2021国产成人精品久久| 99久久成人18免费网站| 久久精品一区二区影院| 色天使久久综合网天天| 国产精品久久久香蕉| 18岁日韩内射颜射午夜久久成人| 国产毛片欧美毛片久久久|