cassert与NDEBUG,_DEGUG

可以用<cassert>中声明的assert()库函数来检查本地C++程序中始终为true的逻辑条件

实际上assert()只在调试版本程序中才会起作用,发布版本不进行编译的;

头文件中,一般是使用预处理实现这个功能,也可以自定义调试的代码;如下所描述

在本地C++程序的中,
预处理符号NDEBUG是在发布版本中默认自动定义的.调试版本中没定义
预处理符号_DEGUG是在调试版本中默认自动定义的,发布版本中没定义

下面这个输出语句只在调试版本编译,不在
发布版本内编译,利用这个特点,可以自己写便于调试的输出信息

#ifdef DEBUG
cout
<<"Marker_1";
#endif


为了可读性,我们可以添加自己的调试表示,方法如下

 

#ifdef _DEBUG
#define My_defined
#endif

这样,就可用使用My_defined代替_DEBUG使用了,

这是C++中最基础的调试功能,可以基于这个开发比较高级的调试功能,

例如内存泄漏检测,以及防止指针悬挂

功能还不错吧!!!o(∩_∩)o...哈哈

posted @ 2009-11-15 15:25  valuel  阅读(1642)  评论(0)    收藏  举报