gpt4 book ai didi

c++ - 仅在发布版本中删除功能

转载 作者:太空狗 更新时间:2023-10-29 23:54:11 25 4
gpt4 key购买 nike

是否有任何方法可以从 Release 构建中删除一行代码,但将其保留在 Debug 构建中而没有丑陋的 #if 语句?

例如,是否有某种方法可以在不使用所有这些 if 语句的情况下实现与以下代码等效的效果?

#if DEBUG
Log.Log("I am in debug mode");
#endif

如果我在 Log.Log 函数中进行有条件的运行时检查,那么字符串“I am in debug mode”将保留在我编译的可执行文件中,这正是我想要。

最佳答案

在通用的共享 header 中定义另一个宏。

#ifdef DEBUG
#define LOG(m) Log.Log(m);
#else
#define LOG(m) do {} while(false);
#endif

然后将对 Log.Log 的调用替换为 LOG

关于c++ - 仅在发布版本中删除功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7478388/

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