次の方法で共有


可変個引数リスト

argument-declaration-list の最後のメンバーが省略記号 (...) である関数宣言は、可変数の引数を受け取ることができます。 このような場合、C++ は、明示的に宣言された引数に対してのみ型チェックを行います。 引数の数や型も変わるほどの汎用関数を作成する必要がある場合は、可変個引数リストを使用できます。 printf ファミリの関数は、可変個引数リストを使用する関数の例です。

宣言した後の引数にアクセスするには、標準インクルード ファイル STDARG.H (「Functions with Variable Argument Lists (可変個引数リストを含む関数)」の説明を参照) に含まれているマクロを使用します。

Microsoft 固有の仕様 →

Microsoft C++ では、省略記号が最後の引数であり、省略記号の前にコンマにある場合、省略記号を引数として指定できます。 したがって、宣言 int Func( int i, ... ); は有効ですが、int Func( int i ... ); は有効ではありません。

END Microsoft 固有の仕様

可変個の引数を受け取る関数の宣言には、使用しない場合でも、少なくとも 1 つのプレースホルダー引数が必要です。 このプレースホルダー引数が指定されていない場合、残りの引数にアクセスする方法はありません。

char 型の引数が可変個の引数として渡される場合は、int 型に変換されます。 同様に、float 型の変数が可変個の引数として渡される場合は、double 型に変換されます。 他の型の引数は、通常の整数および浮動小数点の上位変換を受ける可能性があります。 詳細については、「整数の上位変換」を参照してください。

参照

関連項目

関数の宣言