C++ 関数の変数パラメータの受け渡しメカニズム

王林
リリース: 2024-04-20 09:18:02
オリジナル
467 人が閲覧しました

C 変数パラメータ受け渡しメカニズムにより、関数は無限の数のパラメータを受け入れることができます。構文では、変数パラメータを示すために ... 省略記号を使用します。一般的なアプリケーションには、va_list を使用して可変長引数リストにアクセスする printf() 関数などのフォーマットされた出力が含まれます。

C++ 函数可变参数传递机制

#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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート