_DEBUG是宏。
支持诊断调试功能,在你的编译器定义了_DEBUG是发生作用.
分开debug模式和release模式
MFC程序中,很多地方都用到了这个宏。
一般是以条件宏来实现

#ifdef _DEBUG
  ....
#else
  ....
#endif

如果在编译器看到了你定义_DEBUG和没定义,编译的程序是不一样的
在Release 定义的是NDEBUG.


__FILE__宏
这个宏表示当前执行代码所在的源文件的完整路径
系统定制的宏,你可以对其结果进行处理
(调试用的,没有多大意思,知道就好。)


#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__; //__FILE__这个宏表示当前执行代码所在的源文件的完整路径
#endif

详细解释:
#ifdef _DEBUG //如果有定义_DEBUG
#define new DEBUG_NEW //将new宏定义成DEBUG_NEW,
那么则是代码中有new的都换成DEBUG_NEW。
#undef THIS_FILE//取消THIS_FILE的宏定义
static char THIS_FILE[] = __FILE__;//将THIS_FILE
定义成一个数组,该数组用static声名,则只能在该文件内访问。__FILE__是gcc定义的一个扩展宏,代表的该文件的文件名。
#endif//这个不用说了吧

Posted on 2006-07-28 11:10  李通通  阅读(920)  评论(0编辑  收藏  举报