具有不同参数数量的函数调用
function calls with different amount of arguments
例如,一个函数,它可以接受无限量(或者更准确地说,非常大的数字)相同类型的参数,比如整数,然后使所有传递的整数的值为 5。
我问的是,如果可以的话,我是否可以使用非固定数量的参数制作一个函数。
void setIntToFive(UNKNOWN AMOUNT OF INTS){
//a for loop to assign a value to all the passed arguments
}
然后每次都用不同数量的参数调用它
int a;
int b = 5;
setIntToFive(a,b);
int c;
setIntToFive(a,b,c);//Notice how i add another argument.
那么,除了使参数成为数组之外,有没有办法做到这一点。(我认为这样行不通)
您可以使用变量参数。
本质上
double average ( int num, ... )
{
va_list arguments;
double sum = 0;
va_start ( arguments, num );
for ( int x = 0; x < num; x++ )
sum += va_arg ( arguments, double );
va_end ( arguments );
return sum / num;
}
va_list 是一个结构,用于保存传入的所有参数,va_start将参数分配到该列表中。 va_end 在使用列表后对其进行清理。num 是传递的参数数。
有关详细信息,请查看 MSDN
相关文章:
- C++ 在析构函数调用之前删除的动态成员数组
- 如何在使用模板的函数调用的大括号表达式中推导多维数组的大小
- 头文件会导致函数调用后原始数组出现问题
- 如何在递归函数中调用引用数组?
- 为什么在此函数调用后数组会更改?
- 避免在函数调用中计算数组元素
- 数组类型在函数调用中用作引用类型参数
- C/C++编译器如何自动推导某些C函数调用的数组长度
- 类的二维数组和C++中的构造函数调用
- 调用返回数组的函数
- 将C++中涉及数组的函数调用转换为C#时出现问题
- 我可以用std::vector调用接受数组/指针参数的函数吗
- 如何调用使用数组将函数应用于可变参数包的成语
- 局部数组长度与从函数调用时不同
- 为什么 C++ 数组的大小不能有一个返回常量的函数调用
- 引用数组的函数调用
- JNA 本机函数调用和具有双**指针/数组内存分配的结构
- 调用类数组成员的非默认构造函数
- 是否为函数调用中作为实际参数给出的字符数组分配内存
- 只使用一个构造函数调用的数组初始化