va_list, va_start, va_arg, va_end是C语言中解决变参问题的一组宏。
使用步骤如下:
- /*头文件:<stdarg.h>*/
- /*定义一个va_list型的变量args,这个变量是指向参数的指针;*/
- va_list args;
- /*
- *用va_start宏初始化args,注意,va_start的第二个参数before指的是变参表的前面的那个参数,
- *va_start宏调用完成后,args将指向before后面的参数,也即变参表的第一个参数;
- */
- va_start(args, before);
- /*
- *用va_arg宏返回args当前所指的参数,va_arg宏的第二个参数type是你要返回的参数的类型,
- *返回当前所指的参数后,args自动指向下一个参数;
- */
- type var = va_arg(args, type);
- /*用va_end宏结束可变参数的获取;*/
- va_end(args);
参考文章:
http://wind1728.blog.sohu.com/76008741.html
http://www.cnblogs.com/margincc/archive/2011/03/29/2095057.html
http://simplesource.blog.163.com/blog/static/10341406200901641911819/
http://www.cppblog.com/xmoss/archive/2009/07/20/90680.html