断言调试
分类:C++
在代码调试中,经常用到的调试方法就是“断言”。
- assert(或ASSERT)
使用方法:包含头文件#include <assert.h>;assert(expression)。当expression的值不为0时,程序正常运行;当expression的值为0时,运行程序将被终止,并且抛出错误信息。ASSERT与assert在使用上没有区别,但ASSERT是用于MFC中的断言调试,需要包含头文件#include <afx.h>,并且使用动态链接到MFC库,具体方法如下:
-
- 打开“Project”。
- 从“Project”菜单中选择“Settings”。
- 在“Setting for”中选择“All configurations”。
- 单击“General”选项卡,如果它不是可见的,使用选项卡滚动按钮向左滚动。
- 在“Microsoft foundation classes”组合框中选择“Use MFC in a Shared DLL”。
- 单击“Ok”,保存更改。
- VERIFY
在Debug模式下,VERIFY于ASSERT作用基本一致,二者都表达式的值进行计算。但是在Release模式下,ASSERT不计算表达式的值,也不会输出诊断信息;VERIFY计算表达式的值,但不论值是否为0,都不会输出诊断信息。
VERIFY与ASSERT用在程序调试上并无本质上的区别,但是建议尽量使用ASSERT宏,因为VERIFY在release版本中虽然不输出,但仍需要计算,这会消耗CPU资源并且浪费CPU的时间。
如果有收获,可以请我喝杯咖啡!