The C Programming Language--可变参数的函数

函数 printf的正确声明形式为:
int printf(char *fmt, ...)

void va_start (va list ap, last-required)

type va_arg (va list ap, type)

void va_end (va list ap)

其中,省略号表示参数表中参数的数量和类型是可变的。

va_list 类型用于声明一个变量,该变量将依次引用各参数。

宏va_start将ap初始化为指向第一个可选参数列表的参数。在使用ap 之前,该宏必须被调用一次。参数表必须至少包括一个有名参数,

每次调用va_arg,该函数都将返回一个参数,并将ap 指向下一个参数。va_arg 使用
一个类型名来决定返回的对象类型、指针移动的步长。

最后,必须在函数返回之前调用va_end,以完成一些必要的清理工作。

关于:

int putchar (int c)

The putchar function is equivalent to putc with stdout as the value of the stream
argument.

所以其可以依次不断地从stdout中取出字符到字符串指针中。

int putc (int c, FILE *stream)

成功:返回c  失败:返回EOF

res:

原文地址:https://www.cnblogs.com/qianzhilan/p/4273118.html