gpt4 book ai didi

使用可变宏进行 C 日志记录

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

我正在尝试用 C 语言编写一个无开销的日志记录宏。

我的第一个想法是:

#define debug_print(...) \
{ \
printf(_LOG_FMT, _LOG_ARGS); \
printf(__VA_ARGS__); \
printf("\n"); \
}

但这有一个问题,我必须调用 printf 三次(开销)。

我的第二个想法是:

#define _LOGFUNCTION(LEVEL, message, ...) \
printf(_LOG_FMT message "\n", _LOG_ARGS, __VA_ARGS__)

但现在我无法向其传递一个简单的字符串来记录。它会提示 VA_ARGS 中的参数为零。

有没有办法解决这两个问题?

非常感谢您的帮助!

最佳答案

从上面的评论中找到答案!

#define BAR_HELPER(fmt, ...) printf(fmt "\n%s", __VA_ARGS__)
#define BAR(...) BAR_HELPER(__VA_ARGS__, "")

https://stackoverflow.com/a/8673872/5531233

再次感谢一些程序员老兄!

关于使用可变宏进行 C 日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53111416/

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