cassert与NDEBUG,_DEGUG
可以用<cassert>中声明的assert()库函数来检查本地C++程序中始终为true的逻辑条件
实际上assert()只在调试版本程序中才会起作用,发布版本不进行编译的;
头文件中,一般是使用预处理实现这个功能,也可以自定义调试的代码;如下所描述
在本地C++程序的中,
预处理符号NDEBUG是在发布版本中默认自动定义的.调试版本中没定义
预处理符号_DEGUG是在调试版本中默认自动定义的,发布版本中没定义
下面这个输出语句只在调试版本编译,不在
发布版本内编译,利用这个特点,可以自己写便于调试的输出信息
#ifdef DEBUG
cout<<"Marker_1";
#endif
cout<<"Marker_1";
#endif
为了可读性,我们可以添加自己的调试表示,方法如下
#ifdef _DEBUG
#define My_defined
#endif这样,就可用使用My_defined代替_DEBUG使用了,
这是C++中最基础的调试功能,可以基于这个开发比较高级的调试功能,
例如内存泄漏检测,以及防止指针悬挂
功能还不错吧!!!o(∩_∩)o...哈哈

浙公网安备 33010602011771号