gpt4 book ai didi

c - 关闭特定函数的 DEBUG 宏 (NDEBUG)

转载 作者:行者123 更新时间:2023-11-30 16:05:08 26 4
gpt4 key购买 nike

我正在使用以下宏来打印我在网络上找到的调试信息。效果很好。但是,我想在调试调用函数 A 的函数 B 时关闭函数 A 的调试打印。我尝试了 #define NDEBUG function A #undef NDEBUG 但未能成功抑制函数 A 中的打印。

任何帮助将不胜感激。也欢迎任何关于完成任务的替代方法的建议。

谢谢~RT

#ifdef NDEBUG
/*
If not debugging, DEBUGPRINT NOTHING.
*/
#define DEBUGPRINT2(...)
#define DEBUGPRINT(_fmt,G ...)
#else
/*
Debugging enabled:
*/
#define WHERESTR "[file %s, line %d]: "
#define WHEREARG __FILE__, __LINE__
#define DEBUGPRINT2(...) fprintf(stderr, __VA_ARGS__)
#define DEBUGPRINT(_fmt, ...) DEBUGPRINT2(WHERESTR _fmt, WHEREARG, __VA_ARGS__)
#endif /* NDEBUG */

最佳答案

也许您应该将跟踪包装到一个模块中,以便您可以在运行时动态打开/关闭跟踪,这样您就可以专门针对函数调用将其关闭。在 Release模式下,您可以用空语句替换所有跟踪,但根据我的经验,我发现在 Release模式下保持跟踪也很好 - 以防万一。

关于c - 关闭特定函数的 DEBUG 宏 (NDEBUG),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1898336/

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