我有一个只接受变量args而不是va_list的预处理器定义。
#define DEBUG(fmt, args...) \
do { \
debug_printk(CORE, NAME, \
__func__, fmt, ##args); \
} while (0)
void write(const char* fmt, ...)
{
va_list args;
va_start(args, fmt);
print_debug(fmt, &args);
va_end(args);
}
void print_debug(const char* fmt, va_list* args)
{
DEBUG(fmt, *args);
}
有没有办法将va_list arg变量传递给它?我无法更改此定义,并且似乎没有VDEBUG替代方案。
我有什么选择?
由于
编辑:
我想最好的方法是使用vsnprintf获取字符串,然后使用DEBUG(“%s”,缓冲区)将其传递给DEBUG;
答案 0 :(得分:0)
我想最好的方法是使用vsnprintf获取字符串,然后使用DEBUG(“%s”,缓冲区)将其传递给DEBUG;