函數 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: