C では、関数パラメーターのデフォルト値をどこで定義しますか?宣言のみ、定義のみ、またはどちらの場所でも?
答えは、デフォルトのパラメーター値は定義ではなく宣言で指定する必要があるということです。宣言は、呼び出し元に表示される関数の唯一の部分であるため、関数が正しく呼び出されるために必要なすべての情報が宣言に含まれている必要があります。
言い換えると、デフォルトのパラメーター値は関数の型の一部です。サイン。これにより、パラメータのタイプとデフォルト値があるかどうかが決まります。デフォルトのパラメーター値が宣言から省略されている場合、コンパイラーはパラメーターにデフォルト値がないと想定し、呼び出し元によって提供されない場合はエラーを生成します。
たとえば、次の関数宣言は、デフォルト値がそれぞれ 0 と 1 である 2 つの整数パラメータ x と y を取る関数を定義します。
int foo(int x = 0, int y = 1);
次の関数呼び出しは foo を呼び出します。両方のパラメータにデフォルト値を指定した関数:
int result = foo();
次の関数呼び出しは、x パラメータにデフォルト以外の値を指定して foo 関数を呼び出します:
int result = foo(5);
デフォルト値であることに注意してください。 x パラメーターが明示的に指定されている場合でも、y のパラメーター値は 2 番目の関数呼び出しで引き続き使用されます。これは、デフォルトのパラメータ値が関数の型シグネチャの一部であり、関数呼び出しでそれをオーバーライドすることができないためです。
関数定義でデフォルトのパラメータ値を定義することは可能ですが、これははお勧めできません。この定義はコンパイラにのみ表示され、関数の型シグネチャには影響しません。その結果、保守が混乱する可能性があり、デフォルトのパラメーター値が宣言では変更されているが定義では変更されていない場合、エラーが発生する可能性があります。
以上がデフォルトのパラメータ値は C のどこで定義する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。