C语言 <stdarg.h> va_end() 宏
-
描述
C库宏void va_end(va_list ap)允许具有可变参数的函数使用va_start宏返回。如果从函数返回之前未调用va_end,则结果不确定。 -
声明
以下是va_end()宏的声明。void va_end(va_list ap)
参数- ap - 这是先前由va_start在同一函数中初始化的va_list对象。
-
返回值
该宏不返回任何值。示例以下示例显示va_end()宏的用法-
尝试一下#include<stdarg.h> #include<stdio.h> int mul(int, ...); int main () { printf("15 * 12 = %d\n", mul(2, 15, 12) ); return 0; } int mul(int num_args, ...) { int val = 1; 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; }
让我们编译并运行以上程序以产生以下结果-15 * 12 = 180