gpt4 book ai didi

c++ - 仅在 Debug模式下的控制台输出 c++

转载 作者:行者123 更新时间:2023-11-28 00:13:30 26 4
gpt4 key购买 nike

我原以为这会是一个被广泛问到的问题,但我仍然没有找到答案。

我正在调试一些 C++ 代码,这些代码仅在将某些函数句柄作为输入时以微妙的方式产生错误。长话短说解决了问题,但我在 .cpp 文件中定义了:

#define DEBUG(x) do { std::cerr << x << std::endl; } while (0)

不用说代码中到处都是:

DEBUG("Foo's address") 
DEBUG(&Foo)

现在我假设在“发布”中编译器会忽略所有这些预编译器输出。但事实并非如此!

那么在实践中如何做到这一点(我想保留输出以供将来添加,但显然不希望在发布版本中使用它)?我正在尝试使用 cmake 的 clion,这是特定于 IDE/编译器的东西吗?

谢谢

最佳答案

根据你的编译器,它可能会定义一些东西告诉你编译处于 Debug模式(或者你可以在命令行上自己做),然后:

#ifndef _DEBUG // works in VS
#define DEBUG(x)
#else
#define DEBUG(x) do { std::cerr << x << std::endl; } while (0)
#endif

有关使用哪个宏的更多讨论,请参阅 this问题。

关于c++ - 仅在 Debug模式下的控制台输出 c++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31860255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com