C 変数パラメータ受け渡しメカニズムにより、関数は無限の数のパラメータを受け入れることができます。構文では、変数パラメータを示すために ... 省略記号を使用します。一般的なアプリケーションには、va_list を使用して可変長引数リストにアクセスする printf() 関数などのフォーマットされた出力が含まれます。
#C 関数の変数パラメータ受け渡しメカニズム
はじめに
C が提供する可変引数パラメータ受け渡しメカニズムにより、関数は不特定の数のパラメータを受け入れることができます。これは、さまざまなソースからのデータを処理したり、パラメーター リストを動的に作成したりする必要があるシナリオで役立ちます。構文
可変個引数関数は、... 記号を省略した仮パラメータを宣言する関数です。省略記号は、関数がこの型の引数を無限に受け入れられることを示します。
void printArgs(const char* fmt, ...) { // ... 代码 }
実用的なケース: フォーマットされた出力
変数パラメーター受け渡しメカニズムの一般的なアプリケーションは、フォーマットされた出力です。次のコードは、printf() 関数を使用して可変数のパラメーターを出力する方法を示しています。
#include <iostream> #include <stdarg.h> using namespace std; void print(const char* fmt, ...) { va_list args; va_start(args, fmt); vprintf(fmt, args); va_end(args); } int main() { print("Hello, %s!", "world"); print("Average: %d, %d, %d", 1, 2, 3); return 0; }
出力:
Hello, world! Average: 1, 2, 3
パラメータへのアクセス
va_list を使用して、変数パラメータ リスト内のパラメータにアクセスできます。
va_start() は
va_list オブジェクトを初期化し、
va_arg() は次の引数を取得するために使用されます。
va_list および
va_arg() の詳細については、C 標準ライブラリのドキュメントを参照してください。
以上がC++ 関数の変数パラメータの受け渡しメカニズムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。