【发布时间】:2017-08-17 14:30:06
【问题描述】:
我正在尝试将 __ VA_ARGS __ 传递给函数。由于某种原因,第一个参数总是错误的(看起来像一个地址):
#define PRINTF_ERROR(format, ...) {\
PrintfError(format, __FUNCTION__, ##__VA_ARGS__);\
}
void PrintfError(const char* format, const char* function, ...)
{
va_list args;
va_start(args, format);
printf("%s(): ", function);
printf(format, args);
va_end(args);
}
例如,当尝试打印相同的变量时: "A = 0x20005524 A = 0x00000007"
有人知道为什么吗? 谢谢
【问题讨论】:
-
printf没有va_list——你可能是指vprintf。
标签: c macros variadic-functions