首頁 > 後端開發 > C++ > 主體

預設參數應該在 C 中的哪裡定義:宣告或定義?

DDD
發布: 2024-10-30 01:53:29
原創
833 人瀏覽過

Where should default parameters be defined in C  : declaration or definition?

函數定義中的預設參數與聲明

在 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,其中預設參數在函數宣告中指定。這是因為:

考慮以下場景:

  • 頭檔 (lib.h) 使用任一語法宣告函數。
  • 單獨的實作檔 ( lib.cpp) 使用預設參數定義函數。
  • 另一個原始檔 (test.cpp) 包含頭檔並呼叫函數,而不提供預設參數的值。

情況1:

編譯器在編譯test.cpp時會在頭檔中看到預設參數宣告。這確保了對 test.cpp 中函數的呼叫有效,即使未明確提供預設參數。

情況2:

編譯器將在test.cpp編譯過程中看不到頭檔中的預設參數聲明,因為它僅在實作檔案(lib. cpp)中定義。這將導致 test.cpp 中出現編譯錯誤,因為未宣告預設參數。

因此,在函數宣告(lib.h)中指定預設參數是確保跨函數一致行為的標準方法不同的編譯單位。

以上是預設參數應該在 C 中的哪裡定義:宣告或定義?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板