#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
是什么意思,有什么用处?
这几行代码重新定义默认的 new 操作符为DEBUG_NEW(MFC自己写的一个宏),使得任何通过new新建出来的对象或者内存块都会被记录下来,如果你的程序此后没有释放它们的话,在你退出调试状态时,VC会在输出窗口里面显示出来这些没有被释放的对象或者内存块的信息(这就是所谓的“内存泄露”)。此外,因为使用了“#if _DEBUG”,所以这个内存释放监测的机制仅在编译运行DEBUG版本时有效,在RELEASE版本中没有,所以不会影响其运行效率。
本文解释了在MFC中使用DEBUG_NEW宏的意义,该宏在Debug版本下重新定义了默认的new操作符,用于跟踪通过new创建的对象或内存块,帮助开发者在退出调试状态时检测内存泄漏。

1125

被折叠的 条评论
为什么被折叠?



