标签: c macos
我的功能如下
extern "C" int FuncTrace(const char *fmt, ...) { va_list args; va_start(args, fmt); return printf(fmt, args); }
如果我在控制台上打印一些东西,如下所示,它不起作用?
FuncTrace(" %s \n", __PRETTY_FUNCTION__ );
有人可以帮我纠正FuncTrace()吗?
答案 0 :(得分:4)
如果要传递va_list伪参数,则需要vprintf函数:
va_list
vprintf
return vprintf(fmt, args);
答案 1 :(得分:2)
您似乎认为printf()接受va_list作为其第一个参数。它没有,它想要一个字符串。您需要使用vprintf():
printf()
vprintf()
答案 2 :(得分:2)
您的意思是在vprintf函数中使用FuncTrace而不是printf吗?
FuncTrace
printf