1848

9 分钟

#C 语言标准库函数 va_end

/********************************************* * @brief 清理可变参数列表 * @param args 要清理的可变参数列表 ********************************************/ void va_end(va_list args);

说明

清理被 va_startva_copy 函数初始化的可变参数列表。

  • 清理未被 va_startva_copy 函数初始化的参数列表是未定义行为
  • 函数返回前未清理被 va_startva_copy 函数初始化的参数列表是未定义行为

参数

  • args - 要清理的可变参数列表

返回值

#示例

#include <stdio.h> #include <stdarg.h> // 求和函数 int sum(int count, ...) { // 创建并初始化可变参数列表 va_list args; va_start(args, count); int result = 0; for (int i = 0; i < count; i+=1) { result += va_arg(args, int); // 读取下一个可变参数 } va_end(args); // 清理可变参数列表 return result; } int main(void) { printf("%d\n", sum(9, 1, 2, 3, 4, 5, 6, 7, 8, 9)); return 0; }

运行结果:

45

#推荐阅读

#外部参考

#参考标准

  • C11 standard (ISO/IEC 9899:2011):
    • 7.16.1.3 The va_end macro (p: 270-271)
  • C99 standard (ISO/IEC 9899:1999):
    • 7.15.1.3 The va_end macro (p: 250-251)
  • C89/C90 standard (ISO/IEC 9899:1990):
    • 4.8.1.3 The va_end macro

创建于 2025/10/18

更新于 2025/10/18