2

そこで、次の宣言を含む String ヘッダー ファイルを見ていました。

string(const char*);

変数名がない場合、入力パラメーターを使用するにはどうすればよいですか? また、変数名を書かないことに意味はありますか。同じ型の 2 つのパラメーターを受け取るメソッドがあったとしたら、めちゃくちゃになると思います。しかし、主な問題は、変数名なしでこの入力パラメーターにアクセスするにはどうすればよいかということです。ありがとう!

4

1 に答える 1

5

コンパイラに関する限り、関数が宣言されているときにパラメータの実際の名前を知る必要はありません。必要なのは、関数のシグネチャ (戻り値の型、名前、パラメーターの型) だけです。

関数を定義するとき、つまりソースファイルでパラメータ名のみが必要です。

// foo.h
void foo(const char*);

// foo.c
#include "foo.h"
void foo(const char * c) {
    //OK
}

void bar(const char*) {
    //Indeed, we have no way to access the parameter
}

これらの署名が一致する限り、すべてが正常に機能します。ただし、これがヘッダー ファイルである場合は、通常、宣言にパラメーター名を含めることをお勧めします。これは有用なドキュメントです。

于 2013-10-30T14:01:19.440 に答える