C中的参数可变参数可以有两种使用方法:
1.宏定义
#define print_test(...) \
printf("%s\n",__VA_ARGS__)
2.函数
#include
#include
int demo(char* test,...)
{
va_list argp; /* 定义保存函数参数的结构,可以理解为argp为指向参数列表的一个指针 */
int argno = 0; /* 纪录参数个数 */
char *para = NULL;
va_start( argp,test);/* argp指向传入的第一个可选参数,test是最后一个确定的参数 */
while (1)
{
para = va_arg( argp, char*); /* 取出当前的参数,类型为char * */
if ( strcmp( para, "/0") == 0 ) /* 采用空串指示参数输入结束 */
break;
printf("Parameter #%d is: %s\n", argno, para);
argno++;
}
va_end( argp ); /* 将argp置为NULL */
return 0;
}
void main( void )
{
demo("DEMO", "This", "is", "a", "demo!" ,"333333", "/0");
}
输出的结果:
Parameter #0 is: This
Parameter #1 is: is
Parameter #2 is: a
Parameter #3 is: demo!
Parameter #4 is: 333333
参考文章
http://www.cnblogs.com/hanyonglu/archive/2011/05/07/2039916.html
http://www.cnblogs.com/gogly/articles/2416833.html
http://blog.sina.com.cn/s/blog_661314940100qmfg.html
阅读(1662) | 评论(0) | 转发(0) |