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

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

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

    jasmine214--love

    只有當你的內心總是充滿快樂、美好的愿望和寧靜時,你才能擁有強壯的體魄和明朗、快樂或者寧靜的面容。
    posts - 731, comments - 60, trackbacks - 0, articles - 0

    C++ Debug模式下--VERIFY的使用

    Posted on 2010-08-12 11:47 幻海藍夢 閱讀(1550) 評論(0)  編輯  收藏 所屬分類: C++
     

    原文:http://jazka.blog.51cto.com/809003/188130
    1
    ASSERT與VERIFY宏在Debug模式下作用基本一致,二者都對表達式的值進行計算,如果值為非0,則什么事也不做;如果值為0,則輸出診斷信息。

    2 ASSERT與VERIFY宏在Release模式下效果完全不一樣。ASSERT不計算表達式的值,也不會輸出診斷信息;VERIFY計算表達式的值,但不管值為0還是非0都不會輸出診斷信息。VERIFY與ASSERT用在程序調試上并無本質上的區(qū)別。

    此外,TRACE() 宏的編譯也受 _DEBUG 控制。
    所有這些斷言都只在 Debug版中才被編譯,而在 Release 版中被忽略。唯一的例外是 VERIFY() 。事實上,這些宏都是調用了 assert() 函數,只不過附加了一些與庫有關的調試代碼。如果你在這些宏中加入了任何程序代碼,而不只是布爾表達式(例如賦值、能改變變量值的函數調用等),那么 Release 版都不會執(zhí)行這些操作,從而造成錯誤。

    初學者很容易犯這類錯誤,查找的方法也很簡單,因為這些宏都已在上面列出,只要利用 VC++ 的 Find in Files 功能在工程所有文件中找到用這些宏的地方再一一檢查即可。另外,有些高手可能還會加入 #ifdef _DEBUG 之類的條件編譯,也要注意一下。
    順便值得一提的是
    VERIFY() 宏,這個宏允許你將程序代碼放在布爾表達式里。這個宏通常用來檢查 Windows API 的返回值。

    有些人可能為這個原因而濫用 VERIFY() ,事實上這是危險的,因為 VERIFY() 違反了斷言的思想,不能使程序代碼和調試代碼完全分離,最終可能會帶來很多麻煩。因此,專家們建議盡量少用這個宏。

    主站蜘蛛池模板: 日本高清免费网站| 国产无遮挡吃胸膜奶免费看视频| 国产91精品一区二区麻豆亚洲| 国产精品亚洲综合网站| 白白国产永久免费视频| 亚洲国产午夜精品理论片在线播放 | 偷自拍亚洲视频在线观看99| 女人与禽交视频免费看| 亚洲AV第一成肉网| 亚洲成av人片不卡无码久久| 窝窝影视午夜看片免费| 亚洲人成人无码网www国产| 黄网站在线播放视频免费观看| 亚洲AⅤ视频一区二区三区| 尤物视频在线免费观看| 亚洲免费人成在线视频观看| 丁香花在线视频观看免费| 亚洲成av人影院| 57pao国产成永久免费视频| 亚洲国产日韩在线人成下载| 成人无遮挡裸免费视频在线观看| 亚洲精品无AMM毛片| 亚洲精品和日本精品| 青青操免费在线视频| 91情国产l精品国产亚洲区| 日韩免费a级毛片无码a∨| 亚洲AV电影天堂男人的天堂| 国产亚洲精品看片在线观看| 久久国产精品一区免费下载| 亚洲国产成+人+综合| 免费日本黄色网址| 免费日本一区二区| 亚洲Av永久无码精品黑人| 亚洲综合网站色欲色欲| 国产h肉在线视频免费观看| 久久精品国产亚洲AV天海翼| 亚洲成AV人在线观看天堂无码| 毛片a级毛片免费观看免下载| 国产一级淫片a免费播放口| 亚洲精品午夜视频| 免费一级特黄特色大片在线观看|