可变参数函数的C语言示例代码
通过stdarg.h头文件为函数提供了定义可变参数列表的能力。声明一个可变参数的函数类似:void func(int n,...);
其中
:n表示参数列表个数
:省略号...来表示未知参数列表。
stdarg.h中提供了一个va_list类型,用于存放参数。
详细示例代码如下:
程序代码:
#include<stdarg.h> #include "sum.h" double sum(int lim, ...) { va_list ap; int i; double total=0; va_start(ap,lim); for(i=0;i<lim;i++) total+=va_arg(ap,double); va_end(ap); return total; }调用方式
程序代码:
#include <stdio.h> #include "sum.h" int main(void) { double s,t; s=sum(3,1.1,2.2,13.3); t=sum(6,1.1,2.1,13.1,4.1,5.1,6.1); printf("return value for sum(3,1.1,2.2,13.3): %g\n",s); printf("return value for sum(6,1.1,2.1,13.1,4.1,5.1,6.1): %g\n",t); return 0; }