変数引数、引数リスト
引数宣言リスト の最後のメンバーが省略記号 (...) の関数宣言は可変個の引数を受け取ることができます。このような場合C++ では明示的に宣言される引数にだけ型チェックが実行されます。引数の数と型が異なることができるほど関数をジェネリックにする必要がある場合に可変個引数リストを使用できます。関数の printf ファミリは可変個引数リストを使用する関数の例です。
宣言された標準に含まれるマクロを使用すると引数にアクセスするには 変数のリストを取る関数 で説明したようにファイル STDARG.H を指定します。
Microsoft 固有の仕様 →
省略記号の最後の引数であり省略記号がその後に Microsoft C++ の前に省略記号が引数として指定します。したがってint Func(int i, ...); は宣言できますがint Func(int i ...); は指定できません。
終了 Microsoft 固有の仕様→
可変個の引数を受け取る関数の宣言は使用されていない場合でも少なくとも 1 台のプレースホルダー引数が必要です。このプレースホルダーの引数を指定しなければ残りの引数にアクセスする方法はありません。
型 char が可変個の引数として渡すとき int を入力するには変換されます。同様に フローティング 変数の型引数を引数として渡すとき 倍精度浮動小数点型 を入力するに変換されます。他の型引数は通常の整数データと浮動小数点上位変換が適用されます。詳細についてはの整数の上位変換 を参照してください。