#include <stdio.h>
#include <stdarg.h>
void
va_fun(int i, ...)
{
va_list arg_ptr;
int j=0;
va_start(arg_ptr, i);
j=va_arg(arg_ptr, int);
va_end(arg_ptr);
printf("%d %d\n", i, j);
return;
}
void
va_fun2(int i, ...)
{
va_list arg_ptr;
int j=0;
va_start(arg_ptr, i);
printf("%d\n", i);
while(1){
j=va_arg(arg_ptr, int);
printf("%d\n", j);
if(j == -1)
break;
}
va_end(arg_ptr);
return;
}
int
main()
{
va_fun(1, 2, 3, 4);
va_fun2(1, 2, 3, 4, -1);
return 0;
}
#include <stdarg.h>
void va_start(va_list ap, argN);
void va_copy(va_list dest, va_list src);
type va_arg(va_list ap, type);
void va_end(va_list ap);
ubuntu 下 stdarg.h 文件路径为:
/usr/lib/gcc/i486-linux-gnu/4.4/include/stdarg.h
参考文档: