c++ - 如何分离调试和 Release模式代码

标签 c++ c debugging visual-studio-2005

在 Debug模式或者测试的时候,我需要打印很多不同的信息,所以我使用这个方法:

#ifdef TESTING
// code with lots of debugging info
#else
// clean code only
#endif // TESTING`

这个方法好吗,或者还有其他简单优雅的方法吗?

但这样一来,我在两个地方重复了相同的代码,如果以后要更改代码中的任何内容,我必须在两个地方都这样做,这既耗时又容易出错。

谢谢。

我正在使用 MS Visual Studio。

最佳答案

您可以使用宏来打印调试信息,然后在发布版本中将该宏定义为空。

例如,

#ifdef _DEBUG
#define DEBUG_PRINT(x) printf(x);
#else
#define DEBUG_PRINT(x)
#endif

使用此方法,您还可以添加更多信息,例如

__LINE__ 
__FILE__

自动获取调试信息。

关于c++ - 如何分离调试和 Release模式代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2508729/

相关文章:

visual-studio - 无法在 Visual Studio 2010 上启动调试器 (F5) 但是, ' attach to process' 确实有效(慢)。怎么修?

debugging - GDB 进程意外终止(退出代码 3)

c++ - 使用 C++ 从我的可执行文件中按其资源 ID 获取图标索引

c - 是否有任何用于绘制图片和制作.jpg 文件的C 库?

objective-c - block 被释放时的回调

c - 如何使用数组索引作为运算符?

windows - x86 调试中符号如何解决使用 FPO 遍历堆栈的问题?

c++ - 如何为托管 C++ 类中的静态变量赋值?

c++ - 什么在 C++ 中使用更多内存?一个 2 个整数或 2 个函数?

c++ - VS 2013 无法根据模板参数专门化具有通用引用和返回类型的函数模板