• <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>
            隨筆-4  評論-40  文章-117  trackbacks-0



             

            何時需要使用斷言

            1.可以在預計正常情況下程序不會到達的地方放置斷言:ASSERT( FALSE );
            2.斷言可以用于檢查傳遞給私有方法的參數。(對于公有方法,因為是提供給外部的接口,所以必須在方法中有相應的參數檢驗才能保證代碼的健壯性)
            3.使用斷言測試方法執行的前置條件和后置條件
            4.使用斷言檢查類的不變狀態,確保任何情況下,某個變量的狀態必須滿足。(如age屬性應大于0小于某個合適值)


            什么地方不要使用斷言

            斷言語句不是永遠會執行,可以屏蔽也可以啟用
            因此:
            1.不要使用斷言作為公共方法的參數檢查,公共方法的參數永遠都要執行
            2.斷言語句不可以有任何邊界效應,不要使用斷言語句去修改變量和改變方法的返回值


             

            ASSERT()是干什么用的

              ASSERT()是一個調試程序時經常使用的宏,在程序運行時它計算括號內的表達式,如果表達式為FALSE (0), 程序將報告錯誤,并終止執行。如果表達式不為0,則繼續執行后面的語句。這個宏通常原來判斷程序中是否出現了明顯非法的數據,如果出現了終止程序以免導致嚴重后果,同時也便于查找錯誤。例如,變量n在程序中不應該為0,如果為0可能導致錯誤,你可以這樣寫程序:
                ......
                ASSERT( n != 0);
                k = 10/ n;
                ......
                ASSERT只有在Debug版本中才有效,如果編譯為Release版本則被忽略。
                assert()的功能類似,它是ANSI C標準中規定的函數,它與ASSERT的一個重要區別是可以用在Release版本中。

            posted on 2008-04-28 11:32 李陽 閱讀(1335) 評論(0)  編輯 收藏 引用 所屬分類: C++
            麻豆亚洲AV永久无码精品久久| 国产精品对白刺激久久久| 88久久精品无码一区二区毛片| 欧洲人妻丰满av无码久久不卡| 伊人久久大香线蕉成人| 久久精品国产99国产电影网| 色综合久久无码五十路人妻| 亚洲国产成人精品女人久久久| 四虎影视久久久免费| 久久se精品一区精品二区国产| 亚洲国产精品久久| 理论片午午伦夜理片久久| 亚洲精品美女久久久久99小说| 久久九九久精品国产免费直播| 天天爽天天狠久久久综合麻豆| 国产精品欧美久久久久无广告| 久久福利青草精品资源站| 日本道色综合久久影院| 国产成人精品久久亚洲高清不卡 | 久久一区二区三区免费| 国产精品久久久久9999高清| 国产伊人久久| 精品久久人妻av中文字幕| 久久久久国产一级毛片高清板| 人妻无码中文久久久久专区| 乱亲女H秽乱长久久久| 久久国产成人| 久久综合狠狠综合久久激情 | 久久精品亚洲AV久久久无码 | 亚洲精品高清久久| 国产精品国色综合久久| 无码国内精品久久人妻麻豆按摩| 久久精品国产亚洲麻豆| 7777久久久国产精品消防器材| 欧美亚洲另类久久综合婷婷| 欧美一区二区精品久久| 日本三级久久网| 久久精品18| 香蕉久久久久久狠狠色| 一本一本久久a久久综合精品蜜桃| 区亚洲欧美一级久久精品亚洲精品成人网久久久久|