stdarg.h 可变长参数

[url]http://zh.wikipedia.org/zh-sg/Stdarg.h[/url]
[url]http://www.cppblog.com/qiujian5628/archive/2008/01/21/41562.html[/url]
[size=medium]
★stdarg是由stdandard(标准) arguments(参数)简化而来

[/size]

#include
#include

void printargs(int arg1, ...) /* 輸出所有int型態的參數,直到-1結束 */
{
va_list list; // a_list 用来指向参数 C89
int i;

va_start(list, arg1); // va_start 使va_list指向起始的参数 C89
i = arg1;
while (i != -1)
{
printf("%d ", i);
i = va_arg(ap, int); // va_arg 检索参数 C89
}

va_end(ap); // va_end 释放va_list C8
putchar('\n');
}

int main(void)
{
printargs(5, 2, 14, 84, 97, 15, 24, 48, -1);
printargs(84, 51, -1);
printargs(-1);
return 0;
}

你可能感兴趣的:(APUE)