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