ホームページ  >  記事  >  バックエンド開発  >  C++ で可変個引数関数を定義して呼び出すにはどうすればよいですか?

C++ で可変個引数関数を定義して呼び出すにはどうすればよいですか?

WBOY
WBOYオリジナル
2024-04-12 21:03:02898ブラウズ

C では、... (省略記号) を使用して可変パラメータ関数を定義し、関数が任意の数のパラメータを受け入れることができるようにします。呼び出し時には、それを固定パラメータ関数として扱います。

C++ 中如何定义和调用可变参数函数?

#C で可変個引数関数を定義して呼び出すにはどうすればよいですか?

可変引数関数 (可変引数関数とも呼ばれる) を使用すると、関数は任意の数のパラメーターを受け入れることができます。 C 標準ライブラリには、printf()scanf() などの一連の可変引数関数が含まれています。独自の可変引数関数を定義することもできます。

可変個引数関数の定義

可変個引数関数を定義するには、構文 ... (省略記号) を使用します。これは、関数が任意の数のパラメーターを受け取ることができることを意味します。例:

#include <iostream>
#include <cstdarg> // 包含 va_list 和相关的宏

void print_numbers(int count, ...) {
  va_list args;
  va_start(args, count); // 初始化 va_list 对象

  // 遍历可变参数
  for (int i = 0; i < count; i++) {
    int num = va_arg(args, int); // 获取下一个 int 类型的参数
    std::cout << num << " ";
  }

  va_end(args); // 清理 va_list 对象
}

... はすべての固定パラメータ定義の後に配置する必要があることに注意してください。

可変引数関数の呼び出し

可変引数関数を呼び出すには、単に固定数の引数を持つ別の関数として扱います。例:

print_numbers(3, 1, 2, 3);

この関数は 1 2 3 を出力します。

実践的なケース

次の例は、可変パラメーター関数を定義して呼び出す方法を示しています:

#include <iostream>

void print_max(int count, ...) {
  va_list args;
  va_start(args, count);

  // 保存最大值
  int max = INT_MIN;

  // 获取并比较可变参数
  for (int i = 0; i < count; i++) {
    int num = va_arg(args, int);
    if (num > max) {
      max = num;
    }
  }

  va_end(args);

  // 打印最大值
  std::cout << "最大值:" << max << std::endl;
}

int main() {
  print_max(3, 1, 2, 3);
  print_max(5, 3, 5, 2, 1, 7);

  return 0;
}

出力:

最大值:3
最大值:7

以上がC++ で可変個引数関数を定義して呼び出すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。