C 语言宏 va_end 用于清理可变参数列表,处理完所有参数后必须调用。
定义
void va_end(va_list ap);va_end 是 <stdarg.h> 中的宏,清理 va_list,处理完可变参数后必须调用。
用法
#include <stdio.h>
#include <stdarg.h>
int avg(int n, ...) {
va_list args;
va_start(args, n);
int sum = 0;
for (int i = 0; i < n; i++)
sum += va_arg(args, int);
va_end(args); // 清理
return sum / n;
}
int main() {
printf("avg = %d\n", avg(3, 90, 80, 70));
return 0;
}输出:
avg = 80注意事项
va_end 与 va_start 配对,即使中途 return 也要先调用,保证资源正确释放。