具有不同参数数量的函数调用

function calls with different amount of arguments

本文关键字:函数调用 数数 参数      更新时间:2023-10-16

例如,一个函数,它可以接受无限量(或者更准确地说,非常大的数字)相同类型的参数,比如整数,然后使所有传递的整数的值为 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