C および C では、 printf 関数と sprintf 関数は、書式設定された印刷と書き込みに使用されます。これらの関数を使用すると、後続の引数の出力方法を制御するフォーマット文字列を指定できます。ただし、出力される引数の数が事前にわからない場合もあります。このため、これらの関数に可変数の引数を渡す方法という問題が生じます。
標準 C ライブラリには、可変数の引数を処理できる vfprintf 関数が用意されています。 2 つの必須引数を取ります:
次のコード スニペットは、使用方法を示しています。 vfprintf:
void Error(const char* format, ...) { va_list argptr; va_start(argptr, format); vfprintf(stderr, format, argptr); va_end(argptr); }
この例では、Error 関数は最初の引数としてフォーマット文字列を受け取り、任意の数の追加引数を受け取ります。これらの引数は、va_start を使用して初期化される va_list を通じてアクセスされます。次に、vfprintf 関数がフォーマット文字列と va_list を使用して呼び出されます。最後に、va_end を使用して va_list をクリーンアップします。
以上がC および C で可変数の引数を printf/sprintf に渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。