15.3怎样把参数转传给printf()去完成大部分工作?

用vprintf(), vfprintf() 或vsprintf()。

下面是一个error() 函数, 它列印一个出错信息, 在信息前加入字符串“error: ”和在信息后加入换行符:
#include <stdio.h>
#include <stdarg.h>
void error(const char *fmt, ...)
{
   va_list argp;
   fprintf(stderr, "error: ");
   va_start(argp, fmt);
   vfprintf(stderr, fmt, argp);
   va_end(argp);
   fprintf(stderr, "\n");
}