Software
全部博文(16)
分类: C/C++
2007-06-25 01:57:23
还有一个在某处学来的技巧。
就是利用Macro(宏指令)来简化去除Debug模式的测试。
这个代码是适合在Visual C++ 6.0的。
例如:
#include
#ifdef _DEBUG
#define DEBUG
#else
#define DEBUG COMMENT
#endif
#ifdef _DEBUG
#define _dbgf _CrtDbgReport
#define _memptr(ptr) _dbgf(DBG,"addr=0x%08X, size=%d\n",ptr,_msize(ptr))
#define _Traceptr(ptr) _memptr(ptr)
#else
#define _dbgf COMMENT
#define _memptr(ptr)
#define _Traceptr(ptr)
#endif
#define SLASH(s) /##s
#define COMMENT SLASH(/)
用法:
int *pInt=new int(100);
_Traceptr(pInt);
DEBUG AfxMessageBox("Debugging");
这个的用法是在使用new或malloc时要确定系统给于我们的记忆量与它的地址。
用途是在Debug模式测试软件时,如果有leakage Memory,在中止软件时,
Visual C++ IDE会显示出它没有释放记忆的地址。
由此去我们就可以知道在那里调用new或malloc时出现问题。
一旦测试完毕,只要将它设定为Release模式,在编译时,这些测试的代码将会自动的略过。
(当然在不同的IDE与编译器可以做相应的调整。)