vprintf printf区别

来源:互联网 发布:算法实现是什么 编辑:程序博客网 时间:2024/05/16 01:20

与之类似的问题还有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)
使用format来定位ap的指向,即传入的变参序列的首地址

随后就可以使用定参输出vprintf(format, ap);

0 0
原创粉丝点击