• <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>
            隨筆 - 55  文章 - 15  trackbacks - 0
            <2012年5月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            常用鏈接

            留言簿

            隨筆分類(lèi)

            隨筆檔案

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            即保持預(yù)處理宏的效率又增加安全性,而且還能像一般成員函數(shù)一樣在內(nèi)里面訪(fǎng)問(wèn)自如--內(nèi)聯(lián)函數(shù)。
            宏的優(yōu)點(diǎn):減少了調(diào)用函數(shù)的開(kāi)銷(xiāo)。缺點(diǎn):像一個(gè)函數(shù),但是有時(shí)會(huì)帶來(lái)副作用,不能訪(fǎng)問(wèn)類(lèi)成員。
            內(nèi)聯(lián)函數(shù):類(lèi)里面的宏,但是會(huì)被編譯器檢查參數(shù)和返回值。同樣不需要函數(shù)調(diào)用的開(kāi)銷(xiāo)。
            應(yīng)該把內(nèi)聯(lián)函數(shù)寫(xiě)在頭文件中。當(dāng)編譯器看到這個(gè)定義時(shí),它把函數(shù)類(lèi)型(函數(shù)名+返回值)和函數(shù)體都放到符號(hào)表中。當(dāng)使用函數(shù)時(shí),編譯器檢查以確保調(diào)用時(shí)正確的,且返回值被正確使用,最后將函數(shù)調(diào)用替換為函數(shù)體。在函數(shù)定義前寫(xiě)上inline.
            內(nèi)聯(lián)函數(shù)很特殊,在每個(gè)用到該函數(shù)的文件中,不會(huì)出現(xiàn)多個(gè)定義錯(cuò)誤的情況。
            有時(shí)候創(chuàng)建的類(lèi)成員函數(shù)都是內(nèi)聯(lián)函數(shù)的時(shí)候,可以把整個(gè)類(lèi)放在頭文件中。
            當(dāng)內(nèi)聯(lián)函數(shù)遇到編譯器
            對(duì)于任意函數(shù),編譯器在它的符號(hào)表中放入函數(shù)類(lèi)型(函數(shù)原型,參數(shù),返回值)。
            1. 裝入符號(hào)表:當(dāng)編譯器看到內(nèi)聯(lián)函數(shù)然后對(duì)內(nèi)聯(lián)函數(shù)體分析沒(méi)有發(fā)現(xiàn)錯(cuò)誤之后,就將函數(shù)體也放入符號(hào)表。
            2. 替換函數(shù):當(dāng)調(diào)用時(shí),編譯器先確保調(diào)用確,即所有參數(shù)類(lèi)型必須滿(mǎn)足,假如函數(shù)類(lèi)型信息符合調(diào)用上下文(返回值也被合理利用),內(nèi)聯(lián)函數(shù)代碼就會(huì)直接替換函數(shù)調(diào)用。
            兩種情況不能執(zhí)行內(nèi)聯(lián):
            1. 函數(shù)太復(fù)雜。
            2. 取函數(shù)地址。
            向前引用:
            class Forward
            {
            int i;
            public:
            Forward():i(0){}
            int f() const { return g() + 1;}// right
            int g() const { return i;}
            };

            c++語(yǔ)言規(guī)定,只有在類(lèi)聲明結(jié)束后,內(nèi)聯(lián)函數(shù)才會(huì)被計(jì)算。所以,不用擔(dān)心沒(méi)有聲明就被調(diào)用的情況。


            字符串定義和粘貼
            #define TRACE(s) cerr << #s << endl; s
            for(int i = 0; i <100 ; i++)
            TRACE(f(i));// cerr << "f(0)" <<endl; f(0);


            #define FIELD(a) char* a##_STRING; int a##_size

            FIELD(one);
            //char* one_string;
            //int one_size;



            posted on 2012-05-30 16:45 Dino-Tech 閱讀(248) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            久久国产免费直播| 久久精品国产亚洲精品2020| 91亚洲国产成人久久精品| 久久精品免费一区二区三区| 国产成人无码精品久久久久免费| 国产精品99久久不卡| 国产L精品国产亚洲区久久| 99精品久久久久久久婷婷| 久久精品国产99国产电影网| 久久亚洲国产精品五月天婷| 精品国产青草久久久久福利| 7国产欧美日韩综合天堂中文久久久久 | 国产香蕉久久精品综合网| 精品久久久无码人妻中文字幕| 四虎国产精品免费久久5151| 久久亚洲AV成人无码软件| 国产精品美女久久久久av爽 | 少妇久久久久久被弄到高潮| 人妻精品久久无码专区精东影业| 国产农村妇女毛片精品久久| …久久精品99久久香蕉国产 | 色婷婷综合久久久久中文一区二区 | 99久久免费国产精品| 精品永久久福利一区二区| 精品一二三区久久aaa片| 色播久久人人爽人人爽人人片aV | 亚洲综合伊人久久综合| 久久人人爽人人爽人人片AV麻豆 | 久久久久无码中| 国产精品青草久久久久福利99| 久久精品国产精品亚洲毛片| 2021国内精品久久久久久影院| 青青久久精品国产免费看| 久久99精品免费一区二区| 国产99久久九九精品无码| 色综合久久综精品| 国产伊人久久| 亚洲欧洲精品成人久久奇米网| 蜜臀久久99精品久久久久久| 亚洲欧美一级久久精品| 久久无码AV中文出轨人妻|