質問: C では、デフォルトのパラメータを使用して関数を定義する方法が 2 つあります。どの方法が推奨されますか?その理由は何ですか?
応答:
C では、関数の宣言または定義のいずれかでデフォルトのパラメーターを指定できます。どちらの方法も構文的には機能しますが、推奨されるアプローチは、宣言自体でデフォルトのパラメーターを指定することです。
この設定は、宣言と定義が複数のファイルに分かれている場合に発生する可能性のあるコンパイルの問題に起因します。次の例を考えてみましょう:
lib.h (ヘッダー ファイル)
<code class="cpp">int Add(int a, int b);</code>
lib.cpp (ソース ファイル)
<code class="cpp">int Add(int a, int b = 3) { // Function implementation }</code>
test.cpp (テスト ファイル)
<code class="cpp">#include "lib.h" int main() { Add(4); }</code>
lib.h の宣言でデフォルトのパラメーター値が指定されていないため、test.cpp をコンパイルするとエラーが発生します。これは、コンパイラーが test.cpp のコンパイル時に宣言のみを参照し、lib.cpp 内の定義を参照しないためです。
したがって、次のように関数宣言でデフォルトのパラメーターを常に定義することをお勧めします。
lib.h
<code class="cpp">int Add(int a, int b = 3);</code>
宣言でデフォルトのパラメータを指定すると、関数定義が利用できない場合でもコンパイラはその存在を認識し、コンパイルを防止します。エラー。
以上がC では関数宣言でデフォルトのパラメーターを指定することが好ましいのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。