#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif请问第三行和第四行两条指令是什么意思,有什么具体的作用?

解决方案 »

  1.   

    __FILE__是系统预定义宏,这种宏并不是在某个文件中定义的,而是由编译器定义的。__FILE__表示当前文件名。MFC生成的每个文件中都有这个定义,主要是报告错误时,可以方便地知道是哪个文件出错。
      

  2.   

    那#undef THIS_FILE 这句有什么作用?
      

  3.   

    这是表示,如果生成调试版本,要指示当前文件的名称。__FILE__是一个宏,在编译器编译过程中给它赋值为当前正在编译的文件名称。 #undef THIS_FILE则是取消对THIS_FILE的定义  接下来对它重新定义为当前文件
      

  4.   

    #undef 应该是对宏的操作,那#undef THIS_FILE 是取消对THIS_FILE宏的定义,是为了消除THIS_FILE宏和char THIS_FILE[]变量的冲突吧