C++ 即时启用/禁用 std::couts 的调试消息

标签 c++ debugging

有没有办法在程序内部使用 std::cout 定义/取消定义调试消息?

我知道有诸如#define、#ifndef 之类的东西,但我在想有没有更简洁的方法来让变量说:

# debug ON

打印我所有的调试数据(使用 std::cout)。因此,我们将有这样的代码进行调试:

#ifndef DEBUG
// do something useful
#endif

当您编写 100 段调试代码时,我发现上面的代码很麻烦。

谢谢!

卡洛

最佳答案

#ifdef DEBUG
#define DEBUG_MSG(str) do { std::cout << str << std::endl; } while( false )
#else
#define DEBUG_MSG(str) do { } while ( false )
#endif

int main()
{
    DEBUG_MSG("Hello" << ' ' << "World!" << 1 );
    return 0;
}

关于C++ 即时启用/禁用 std::couts 的调试消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3371540/

相关文章:

java - 我可以在 Android Studio 中调试时退回到之前的断点吗? (掉帧)

javascript - Chrome DevTools 搜索网站中的所有 javascript 文件

debugging - 代码突出显示在OllyDbg上不起作用

c++ - OpenCV 1.x 后端

c++ - 加法/减法(质量)的精度误差

c# - Visual Studio 2015远程调试器 'not implemented'

debugging - 如何在 VS Code 中调试守夜人测试

c++ - 检查 QBool 在 Qt 中是否可用

c++ - 标准库映射和模板函数

c++ - 方法,调用所有基类的同名方法(如果存在)并将返回值保存到列表中