vc++语句问题

来源:百度知道 编辑:UC知道 时间:2024/06/15 10:04:27
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
请解释一下这段语句的意思,详细点最好

//整个是一个条件编译
#ifdef _DEBUG//条件编译开始,判断是否定义了_DEBUG标志,如果定义了,下面三句就执行
#define new DEBUG_NEW//定义宏DEBUG_NEW表示new
#undef THIS_FILE//取消标志THIS_FILE的定义
static char THIS_FILE[] = __FILE__;//定义静态字符数组THIS_FILE,它用__FILE__表示的字符串初始化
#endif //条件编译结束标志

如果调试模式
编译器会给你定义这个宏DEBUG_NEW
如果release模式,就没有。编译器就会忽略它的存在,相当于注释起来了