gpt4 book ai didi

c++ - 调试和预处理器指令

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:10:16 25 4
gpt4 key购买 nike

为了调试,我在我的应用程序中多次调用调试日志函数。当然,在生产版本中,需要跳过这些调试调用。而不是写:

#if DEVEL == 1
Log::debug(...);
#endif

围绕对调试函数的所有调用,我决定在调试函数本身中编写以下内容:

#if DEVEL != 1
return;
#endif

编译器是否会避免无用函数调用的开销,或者出于性能原因,我最好使用(许多丑陋的)#if#endif 构造?

最佳答案

不用担心优化器,你可以做一个简单的技巧:

#if DEVEL == 1
#define LOG_DEBUG(...) Log::Debug(__VA_ARGS__) // variadic macro
#else
#define LOG_DEBUG
#endif

现在到处使用 LOG_DEBUG 以保持简单。

关于c++ - 调试和预处理器指令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6320700/

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