今天在网上看程序时忽然发现别人的函数参数中有省略号,甚是吃惊,发现其函数中使用了va_start,经过查资料大概明白其用法,个人觉得很好用!
#include#include int fun(int a, int b, ...){ int sum = 0; int para1; //参数类型要与调用时的相同 int para2; va_list va; //定义一个字符指针 va_start(va, b); //将va指向参数b后第一个参数 para1 = va_arg(va, int); //读取b后面的第一个参数 para2 = va_arg(va, int); //读取b后面的第二个参数 va_end(va); //清空va sum = a + b + para1 + para2; return sum;}void main(void){ int sum = 0; sum = fun(1, 2, 3, 4); printf("sum = %d\n", sum); return 0;}