[英]A function with undefined argument numbers which call printf()
我试图创建一个调用printf的函数(在我的情况下,我使用curses调用printw),之所以这样做,是因为我想传递颜色并在同一函数中进行刷新,所以我不想每次写3行显示一些内容,我只需要使用一个函数执行一次,因此该函数可以在C中创建如下外观:
void outputConsole(int color_id, const char* a, ...)
{
attron(COLOR_PAIR(2));
printw(a,...);
refresh();
}
您可以使用vw_printw
做到这vw_printw
。 解决方法是
void outputConsole(int color_id, const char* a, ...)
{
attron(COLOR_PAIR(2));
va_list args;
va_start(args, a);
vw_printw(stdscr, a, args);
va_end(args);
refresh();
}
同样在声明以确保编译器格式字符串检查的同时,您可以这样编写
void outputConsole(int color_id, const char* a, ...)
#ifdef __GNUC__
__attribute__(( format (printf, 2, 3)));
#else
;
#endif
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.