#include < stdio.h >
#include < string.h >
#include < stdarg.h >
/*
函数原型声明,至少需要一个确定的参数,注意括号内的省略号 */
int demo( char *, … );
void main( void )
{
demo(”DEMO”, “This”, “is”, “a”, “demo!”, “\0″);
}
int demo( char *msg, … )
{
va_list argp; /*
定义保存
函数参数的结构 */
int argno = 0; /* 纪录参数个数 */
char *para; /* 存放取出的
字符串参数 */
// 使用宏va_start, 使argp指向传入的第一个可选参数,
// 注意 msg是参数表中最后一个确定的参数,并非参数表中第一个参数
va_start( argp, msg );
while (1)
{
//取出当前的参数,
类型为char *
//如果不给出正确的类型,将得到错误的参数
para = va_arg( argp, char *);
if ( strcmp( para, “\0″) == 0 ) /* 采用空串指示参数输入结束 */
break;
printf(”参数 #%d 是: %s\n”, argno, para);
argno++;//注意:栈底在高
地址,栈顶在低
地址,所以这里是++
}
va_end( argp ); /* 将argp置为NULL */
return 0;
}
____________________
提示错误.可我又查不出,有劳大家看看.