以下是一个简单的例子,演示如何使用可变参数来实现一个简单的求和函数:
#include <stdio.h>
#include <stdarg.h>
// 求和函数,n 是参数的数量,... 表示可变参数
int sum(int n, ...) {
int result = 0;
// 定义一个 va_list 类型的变量,用于存储可变参数
va_list args;
// 初始化可变参数列表
va_start(args, n);
// 遍历可变参数,并累加
for (int i = 0; i < n; i++) {
result += va_arg(args, int);
}
// 结束可变参数的使用
va_end(args);
return result;
}
int main() {
int result = sum(3, 10, 20, 30);
printf("Sum: %d\n", result);
return 0;
}
在上述代码中,sum 函数接受一个整数 n 作为参数数量,后面使用省略号 ... 表示可变参数。函数内部使用 va_list 类型的变量 args 来存储可变参数。使用 va_start 宏初始化 args,然后使用 va_arg 宏逐个访问可变参数的值。最后,使用 va_end 宏结束对可变参数的访问。
请注意,可变参数函数需要至少一个已知的参数来确定可变参数的数量。在上例中,第一个参数 n 指定了后续可变参数的数量。
在使用可变参数时,需要小心确保传递的参数和函数内部的处理方式是一致的,否则可能导致错误。
转载请注明出处:http://www.zyzy.cn/article/detail/13538/C 语言