vc自动产生如下代码,不知道什么意思?
请告诉。
谢谢。#ifdef _DEBUG
#define new DEBUG_NEW
#endif

解决方案 »

  1.   

    是DEBUG调试模式吧?用于调试的好像
      

  2.   

    把代码里的new替换成他的,用于检测内存泄漏
      

  3.   

    调试状态下的#define new DEBUG_NEW 
      

  4.   

    #ifdef _DEBUG 
    #define new DEBUG_NEW 
    #endif如果定义了_DEBUG宏,那么定义new为DEBUG_NEW然后你看看DEBUG_NEW是怎么定义的。
      

  5.   

    这是预编译条件
    #ifdef _DEBUG //如果定义了_DEBUG
    #define new DEBUG_NEW //编译该行
    #endif看看预编译的东西
      

  6.   

    #ifdef _DEBUG 
    #define new DEBUG_NEW 
    #endifVC在调试时,所有的内存分配都是在一个调试堆上分配的。
    DEBUG_NEW就是在调试堆上分配内存的。
      

  7.   

    _DEBUG在用DEBUG(相对于release)模式调试程序时会自动定义,所以会执行这段用于跟踪内存泄露的代码。
    在   MFC   中,可以使用   DEBUG_NEW   宏代替   new   运算符来帮助定位内存泄漏。在程序的“Debug”版本中,DEBUG_NEW   将为所分配的每个对象跟踪文件名和行号。
    如果不想重写整个程序来使用   DEBUG_NEW   代替   new,则可以在源文件中定义下面的宏:#define   new   DEBUG_NEW
    当进行对象转储时,用   DEBUG_NEW   分配的每个对象均将显示被分配到的文件和行号,使您可以查明内存泄漏源。MFC   框架的“Debug”版本自动使用   DEBUG_NEW,但代码不自动使用它。如果希望利用   DEBUG_NEW   的好处,则必须显式使用   DEBUG_NEW   或   #define   new,如上所示。