va_list, va_start, va_arg, va_endC语言中解决变参问题的一组宏。

使用步骤如下:

  1. /*头文件:<stdarg.h>*/
  2.  
  3. /*定义一个va_list型的变量args,这个变量是指向参数的指针;*/  
  4. va_list args;  
  5.  
  6. /*  
  7.  *用va_start宏初始化args,注意,va_start的第二个参数before指的是变参表的前面的那个参数, 
  8.  *va_start宏调用完成后,args将指向before后面的参数,也即变参表的第一个参数; 
  9.  */  
  10. va_start(args, before);  
  11.  
  12. /* 
  13.  *用va_arg宏返回args当前所指的参数,va_arg宏的第二个参数type是你要返回的参数的类型, 
  14.  *返回当前所指的参数后,args自动指向下一个参数; 
  15.  */  
  16. type var = va_arg(args, type); 
  17.  
  18. /*用va_end宏结束可变参数的获取;*/  
  19. 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