21xrx.com
2024-11-22 07:37:43 Friday
登录
文章检索 我的文章 写文章
C++函数的省略号参数
2023-07-13 17:59:15 深夜i     --     --
省略号参数 变长参数 可变参数列表 C++函数 函数参数

在C++中,可以使用省略号参数(Ellipsis Parameter)来表示函数中的可变参数。这种参数的使用在开发中经常会遇到。

省略号参数的形式如下:

> 返回类型 函数名(参数类型 参数名, …);

其中,省略号表示可以传入任意数量的参数,也可以不传入参数。

例如,以下是一个计算可变参数和的函数:


#include <iostream>

#include <cstdarg>

using namespace std;

double sum(int count, ...)

{

  va_list ap;

  double sum = 0;

  va_start(ap, count);

  for (int i = 0; i < count; i++) {

    sum += va_arg(ap, double);

  }

  va_end(ap);

  return sum;

}

int main()

{

  cout << sum(3, 1.2, 2, 3.5) << endl;

  cout << sum(5, 1, 2, 3, 4, 5) << endl;

  return 0;

}

在上面的例子中,函数 `sum` 的第一个参数 `count` 表示可变参数的个数,而后面的省略号表示接收任意数量的参数。

在函数内部,使用 `va_list` 类型的 `ap` 变量来迭代可变参数列表。`va_start` 宏可以让 `ap` 指向列表的第一个参数,而 `va_arg` 宏可以获得下一个参数。

最终,使用 `va_end` 宏停止可变参数迭代。函数返回计算后的可变参数的和。

总之,C++中的省略号参数是一个非常有用的特性。当您需要编写处理不同数量参数的函数时,使用省略号参数可以使代码更加简洁和灵活。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复