与之类似的问题还有vfprintf fprintf
1、printf是变参输出,其要点是参数中的:const char * format, ...
- const char * format:
a、用于包含变参的格式数据
b、定位随后紧邻变参在调用栈上的存储位置
- ...:
用于告知编译器将format之后的其它参数依次压入调用栈;
两者使用时必须依序先后紧邻
2、vprintf是为应用实现包装变参的一个中间接口
在应用变参函数比如myPrintf的实现中出现如下关键两句
va_list ap;
va_start(ap, format);
- va_list ap:
- va_start(ap, format)
随后就可以使用定参输出vprintf(format, ap);