问点关于vc++的问题

来源:百度知道 编辑:UC知道 时间:2024/06/01 01:40:01
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
前面带#号的关键字是什么意思啊?????

#ifdef _DEBUG // 判断_DEBUG是否被定义,如果定义了就编译#ifdef...#endif之间的代码
#define new DEBUG_NEW // 将new定义为DEBUG_NEW,即用DEBUG_NEW代替new进行内存分配,可以起到检测内存泄漏的作用
#undef THIS_FILE // 取消THIS_FILE的定义,THIS_FILE在DEBUG_NEW中会用到
static char THIS_FILE[] = __FILE__; // 将THIS_FILE声明为当前源文件名,__FILE__表示当前源文件名,具体的与编译器相关,VC的编译器将__FILE__定义为源文件的全路径
#endif // 对应#ifdef

#ifdef _DEBUG //如果是debug状态
#undef THIS_FILE //清除THIS_FILE
static char THIS_FILE[]=__FILE__; //定义THIS_FILE为 //__FILE__(这是当前文件全路径名字)
#define new DEBUG_NEW //定义new为DEBUG_NEW(这个可以检测到内 //存泄露之类的问题,其实就是可以使用crt开头的那几个调试函数)
#endif
他们是宏定义指令
作用是检查内存泄露

就是些宏定义指令

对,是宏定义指令