C では、関数をデフォルト パラメーターで宣言でき、すべての引数に値を指定しなくても関数を呼び出すことができます。ただし、デフォルト パラメーターを指定する構文は異なる場合があります。
ケース 1:
<code class="cpp">int Add(int a, int b = 3); int Add(int a, int b);</code>
ケース 2:
<code class="cpp">int Add(int a, int b); int Add(int a, int b = 3);</code>
どちらの構文も有効です。ただし、標準的で推奨されるアプローチは ケース 1 で、関数宣言でデフォルトのパラメーターが指定されます。その理由は次のとおりです。
次のシナリオを考えてみましょう:
ケース 1:
コンパイラーは、test.cpp のコンパイル中にヘッダー ファイル内のデフォルトのパラメーター宣言を確認します。これにより、デフォルト パラメーターが明示的に指定されなかった場合でも、test.cpp 内の関数の呼び出しが有効であることが保証されます。
ケース 2:
コンパイラーはtest.cpp のコンパイル中にヘッダー ファイル内のデフォルトのパラメーター宣言は表示されません。これは、実装ファイル (lib.cpp) でのみ定義されているためです。デフォルトのパラメータが宣言されていないため、test.cpp でコンパイル エラーが発生します。
したがって、関数宣言 (lib.h) でデフォルトのパラメータを指定するのが、複数の関数間で一貫した動作を保証する標準的な方法です。異なるコンパイル単位。
以上がデフォルトパラメータはCの宣言または定義のどこに定義する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。