#include <iostream>
#include <cstdarg> // 使用C标准库中的可变参数功能
// 定义一个函数指针类型,该函数接受一个int类型的参数(表示参数的数量)和任意数量的其他参数
typedef void (*FunctionPtr)(int, ...);
// 一个可变参数的示例函数
void printNumbers(int count, ...) {
va_list args;
va_start(args, count); // 初始化args,使其指向第一个可变参数
int value1 = va_arg(args, int); // 获取下一个参数
printf("value1 = %d\n", value1);
double value2 = va_arg(args, double); // 获取下一个参数
printf("value1 = %f\n", value2);
va_end(args); // 清理可变参数列表
}
int main() {
// 使用函数指针调用printNumbers函数
FunctionPtr ptr = printNumbers;
int cnt = 2;
auto a = 10;
auto b = 20.5;
ptr(cnt, a, b); // 直接调用函数指针
return 0;
}
C/C++函数可变参数
![](https://img-home.csdnimg.cn/images/20240711042549.png)