首页 > 技术文章 > 调试过程中,内存泄露检测信息

yangxx-1990 2015-12-18 10:44 原文

#ifdef _DEBUG      //如果_DEBUG已定义
#undef THIS_FILE   //取消定义THIS_FILE
static char THIS_FILE[]=__FILE__;    //定义THIS_FILE,把当前的文件名存入THIS_FILE中
#define new DEBUG_NEW     //定义DEBUG_NEW
#endif
 
THIS_FILE是用在DEBUG_NEW里
为什么不直接用new(__FILE__, __LINE__),因为较旧的编译器(如VC6.0)没有字符串池优化,可能会造成编译文件较大,所以用static char THIS_FILE[]声明唯一的副本
新版的(VS2005、2008、2010、2012)已经声明#define THIS_FILE __FILE__

推荐阅读