va_start() – C函数
C库宏void va_start(va_list ap, last_arg) 初始化ap 就根据 va_arg 和 va_end 宏用的变量。last_arg 是最后一个已知的固定参数被传递给函数,即该参数前省略号。
这个宏之前,必须调用使用 va_arg 和 va_end。
声明
以下是声明的va_start()宏。
void va_start(va_list ap, last_arg);
参数
-
ap -- 这是va_list的对象,将持有va_arg的额外的参数来检索所需的信息。
-
last_arg -- 这是最后一个已知的固定参数传递给函数。
返回值
NA
例子
下面的例子显示的va_start()宏的用法。
#include<stdarg.h>#include<stdio.h>int sum(int,...);int main(void){ printf("Sum of 10, 20 and 30 = %d ", sum(3,10,20,30)); printf("Sum of 4, 20, 25 and 30 = %d ", sum(4,4,20,25,30));return0;}int sum(int num_args,...){int val =0; va_list ap;int i; va_start(ap, num_args);for(i =0; i < num_args; i++){ val += va_arg(ap,int);} va_end(ap);return val;}
让我们编译和运行上面的程序,这将产生以下结果:
Sum of 10, 20 and 30 = 60 Sum of 4, 20, 25 and 30 = 79