C では、関数パラメータにデフォルト値を割り当てることができ、呼び出し元がオプションで引数を指定できるようになります。ただし、これらのデフォルト値の配置により、コンパイル動作が異なる可能性があります。
例 1:
<code class="cpp">int Add(int a, int b = 3);</code>
例 2:
<code class="cpp">int Add(int a, int b); int Add(int a, int b = 3) { }</code>
標準の配置
標準的な方法では、例 2 に示すように、デフォルト値の定義を関数宣言に配置します。これにより、デフォルト値が表示されることが保証されます。
コンパイルの違い
この配置は、関数の宣言と定義が別のソースに分離されている場合に特に重要になります。ファイル。デフォルト値の定義が定義ファイルに配置されている場合 (例 1 のように)、宣言のみを含むヘッダー ファイルを含む他のコンパイル単位には表示されない可能性があります。
次の設定を検討してください。
<code class="cpp">// lib.h int Add(int a, int b); // lib.cpp int Add(int a, int b = 3) { ... } // test.cpp #include "lib.h" int main() { Add(4); // Compilation error }</code>
test.cpp をコンパイルすると、lib.cpp のデフォルト値宣言を確認できないため、エラーが発生します。
標準配置の理由
宣言にデフォルト値を配置すると、その値がすべてのコンパイル単位に表示されるようになり、一貫した動作が保証され、上記のようなシナリオでのコンパイル エラーが防止されます。
以上が関数宣言にデフォルトパラメータを配置することが重要なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。