<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用在程序調試上并無本質上的區別。

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

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

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

    主站蜘蛛池模板: 免费无码黄网站在线看| 国产成人1024精品免费| 2015日韩永久免费视频播放| 久久九九亚洲精品| 在线播放免费人成毛片乱码| 在线观看亚洲av每日更新| 国产午夜精品理论片免费观看| 国产成人亚洲综合无码| 国产在线观看xxxx免费| 亚洲国产精品VA在线观看麻豆| 久久免费精品一区二区| 亚洲欧洲日产国产综合网| 亚洲一区免费在线观看| 精品国产日韩久久亚洲| 国产成人精品免费直播| 免费无码成人AV在线播放不卡| 亚洲国产美国国产综合一区二区| 亚洲美女视频免费| 亚洲第一成年免费网站| 亚洲国产一成久久精品国产成人综合| 国产区在线免费观看| 亚洲国产天堂久久综合网站| 黄页网站免费在线观看| 色屁屁www影院免费观看视频| 国产精品亚洲不卡一区二区三区 | 国产成A人亚洲精V品无码性色 | 亚洲精华国产精华精华液| 亚洲&#228;v永久无码精品天堂久久 | 免费无码中文字幕A级毛片| 亚洲国产日产无码精品| 国产免费一区二区三区免费视频| 亚洲精品国产字幕久久不卡| 亚洲免费在线视频观看| 牛牛在线精品免费视频观看| 亚洲国产综合91精品麻豆| 午夜老司机免费视频| 亚洲国产成人精品电影| 国产v片免费播放| 亚洲AV永久无码精品放毛片| 亚洲一区视频在线播放 | mm1313亚洲国产精品无码试看|