gpt4 book ai didi

c++ - C++ 的最小条件日志记录

转载 作者:太空狗 更新时间:2023-10-29 23:50:04 26 4
gpt4 key购买 nike

我正在从事嵌入式项目,为了调试目的在代码中记录信息非常方便,但完全成熟的 C++ 记录器库在嵌入式环境中几乎不可用。 你能建议如何实现简单、干净和快速的日志记录模块吗?我真的不需要对日志记录后端、输出、级别等进行精细控制。我只想启用和禁用日志记录语句而不混淆代码。目前我是这样做的:

#define DEBUG_ENCODER_PRINTF

// ...

#ifdef DEBUG_ENCODER_PRINTF
debug_printf("enc: %d %d\r\n",
get_encoder_unwrapped(0),
get_encoder_unwrapped(1));
#endif

但我已经有几十种不同的日志记录语句,而且大量的预处理器定义让代码看起来很难看。

最佳答案

如果您这样做,您可以消除那些讨厌的 #ifdef#endif:

#ifdef DEBUG_ENCODER_PRINTF
#define debug_encoder_printf debug_printf
#else
#define debug_encoder_printf(...)
#endif

debug_encoder_printf("hi") 现在将在定义 DEBUG_ENCODER_PRINTF 时调用 debug_printf,但如果未定义,则整个“调用"将被预处理器删除(替换为空)。

关于c++ - C++ 的最小条件日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34011171/

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