【发布时间】:2014-02-27 17:32:56
【问题描述】:
我想要一个辅助函数log,它本质上执行以下操作:
log(file, "array has %d elements\n", 10);
// writes "2014-02-03 16:33:00 - array has 10 elements" to &file
time 部分已关闭,文件写入部分已关闭。然而,问题在于log 的方法签名本身——我应该放什么? This 表示 printf 声明以 ... 关键字结尾,但是如何在我的函数中使用它?
void log(FILE *f, const char * format, ...) // how would I pass ... to fprintf?
让我编辑这里包含更多信息。
我有一个const char * now (),它返回一个格式为“2014-02-03 16:33:00”的字符串。我想像这样传递另一个格式字符串。这两个语句应该是等价的:
log(file, "array has %d elements\n", 10);
fprintf(file, "%s - array has %d elements\n", now(), 10);
我知道vfprintf 允许我传递va_list,但是我怎样才能将now() 作为第一个参数,在所有其他参数之前?
【问题讨论】:
标签: c function variadic-functions printf