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 サイトの他の関連記事を参照してください。