可変長引数とは?
可変長引数(variable arguments)とは、関数に任意の数の引数を渡すことができる機能です。引数の数が固定されていないため、関数の柔軟な呼び出しを実現できます。可変長引数はC言語で最初に導入され、現在では多くのプログラミング言語でサポートされています。
可変長引数の実装方法
可変長引数を渡す関数を作成するには、引数リストの最後に「…」を指定します。ここではC言語での可変長引数の実装方法を例に挙げます。
“`c
#include
#include
void print(int num, …) {
va_list argptr;
va_start(argptr, num);
for (int i = 0; i < num; i++) { printf("%d ", va_arg(argptr, int)); } va_end(argptr); } int main() { print(3, 1, 2, 3); // 1 2 3 print(4, 10, 20, 30, 40); // 10 20 30 40 return 0; } ``` 上記の例では、引数の数を指定するnumと可変長引数...を使用して、引数の数に関係なく関数を呼び出すことができます。可変長引数は、va_list、va_start、va_arg、va_endというマクロを使用してアクセスされます。
可変長引数を使用する例
可変長引数を使用する代表的な例としては、printf関数が挙げられます。printf関数は、第1引数に書式文字列を受け取り、その後に可変長引数を受け取ります。以下は、printf関数の使用例です。
“`c
#include
int main() {
printf(“%d %s %fn”, 10, “hello”, 3.14);
return 0;
}
“`
printf関数は、第1引数に書式文字列”%d %s %fn”を受け取り、その後に可変長引数10、”hello”、3.14を受け取ります。書式文字列には、可変長引数の型と出力形式が指定されています。
まとめ
可変長引数は、関数の柔軟な呼び出しを実現するための機能であり、C言語を始め、多くのプログラミング言語でサポートされています。可変長引数を使用することで、引数の数に関係なく関数を呼び出すことができます。可変長引数は、va_list、va_start、va_arg、va_endというマクロを使用してアクセスされます。よく知られた例としては、printf関数が挙げられます。