0
旧的客户端代码:如何通过我的函数将“...”(可变长度参数列表)传递给另一个?
printf("foo: %d, bar: %s.\n", f, b);
我想什么来替代的printf(& 100的其他类似)有:
my_printf(ctrl1, ctrl2, "foo: %d, bar: %s.\n", f, b);
my_printf实施
void my_printf(CtrlT1 c1, Ctrl c2, char* fmt, ...) {
/* Do stuff with c1 & c2 */
fprintf(log, fmt, **WHAT_GOES_HERE**);
}
什么我试过到目前为止
好像有应该是通的,通过对与fprintf中相关...
参数列表的简单,直接的方式。我尝试了fprintf(log, fmt, ...);
,但编译器抱怨,“...'令牌之前的语法错误”。
我也试过: va_list ap;
va_start(ap, fmt);
fprintf(log, fmt, ap);
与所使用的va_list调用编译,甚至不取芯运行,但什么东西被传递给printf显然是不一样的事情发生了什么传递给我的功能...
,可以通过输出来判断(表示非打印字符)。
如果推动来推动,我可能会通过蛮力走过va_list的内容,但这似乎很愚蠢。有没有简单的标记或语法来通过该...
?
非常感谢@ david-yaw。就是这样! – 2013-05-09 22:34:53