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

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

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

    hjh132's Blog
    If a thing is worth doing it is worth doing well.
    posts - 20,comments - 9,trackbacks - 0

    1.函數調用時,先求出實參表達式的值,然后帶入形參。而使用帶參的宏只是進行簡單的字符替換。
    2.函數調用是在程序運行時處理的,分配臨時的內存單元;而宏展開則是在編譯時進行的,在展開時并不分配內存單元,不進行值的傳遞處理,也沒有“返回值”的概念。
    3.對函數中的實參和形參都要定義類型,二者的類型要求一致,如不一致,應進行類型轉換;而宏不存在類型問題,宏名無類型,它的參數也無類型,只是一個符號代表,展開時帶入指定的字符即可。宏定義時,字符串可以是任何類型的數據。
    4.調用函數只可得到一個返回值,而用宏可以設法得到幾個結果。
    5.使用宏次數多時,宏展開后源程序長,因為每展開一次都使程序增長,而函數調用不使源程序變長。
    6.宏替換不占運行時間,只占編譯時間;而函數調用則占運行時間(分配單元、保留現場、值傳遞、返回)。

    一般來說,用宏來代表簡短的表達式比較合適。

    有時使用宏時會引起理解錯誤:

    例:

    #include<iostream.h>
    #define max(a,b) ((a>b)?a:b)
    void main()
    {
     int i=3,j=2;
     cout<<max(++i,j)<<endl;
     cout<<i<<"  "<<j<<endl;
    }

    運行結果:

    5

    5  2

    posted on 2008-03-24 12:21 101℃太陽 閱讀(570) 評論(0)  編輯  收藏 所屬分類: C與C++

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 美女视频黄频a免费| 亚欧免费无码aⅴ在线观看| 综合久久久久久中文字幕亚洲国产国产综合一区首 | 无码国产精品一区二区免费 | h视频在线观看免费完整版| 亚洲综合伊人制服丝袜美腿| 成人爱做日本视频免费| 中文字幕版免费电影网站| 亚洲精品无码久久毛片波多野吉衣 | 亚洲日韩AV一区二区三区四区| 亚洲精品国自产拍在线观看| 88xx成人永久免费观看| 国产精品亚洲专区无码牛牛| 亚洲国产精品久久久久久| 国产美女无遮挡免费网站| 日韩免费观看一区| 亚洲AV无码一区二区三区久久精品| 狠狠色伊人亚洲综合成人| 成人在线免费观看| 无码人妻精品中文字幕免费 | 国产成人精品日本亚洲直接| 亚洲中文字幕成人在线| 一个人免费观看在线视频www| aaa毛片免费观看| 亚洲精品中文字幕| 亚洲天堂久久精品| 亚洲AⅤ优女AV综合久久久| 成人黄色免费网址| 久久大香香蕉国产免费网站| 国产亚洲美女精品久久| 亚洲人成影院午夜网站| 亚洲国产精品va在线播放| 又粗又硬免费毛片| 24小时免费直播在线观看| 中文字幕免费视频一| 精品一区二区三区免费视频| 亚洲精品无码国产片| 亚洲人成影院77777| 亚洲色图视频在线观看| 久久精品国产精品亚洲蜜月| 亚洲午夜精品久久久久久浪潮 |