首頁 >後端開發 >C++ >C 與 C:`void foo()` 和 `void foo(void)` 有什麼不同?

C 與 C:`void foo()` 和 `void foo(void)` 有什麼不同?

DDD
DDD原創
2024-12-17 02:37:25121瀏覽

C vs. C  : What's the Difference Between `void foo()` and `void foo(void)`?

C 和C 中的函數原型:void foo() 與void foo(void)

C 中,函數的語法原型包括一個void 關鍵字,後面跟著函數名稱和括號。兩個常見的變異是:

  • void foo()
  • void foo(void)

在C 中使用void foo(void)意味著:函數不帶參數,而void foo() 表示未指定數量的未指定類型的參數。

中然而,C 中的 void foo() 和 void foo(void) 都表示不含參數的函數。這種區別是由於歷史原因而產生的,是為了使 C 與 Java 等其他語言保持一致。

雖然這兩種形式在技術上在 C 中都是有效的,但約定是使用 void foo() ,而不使用多餘的 void 參數明晰。編寫 void foo(void) 不會被視為錯誤,但它不會提供任何附加信息,並且可能會讓某些讀者感到困惑。

此外,在 C 中的函數名稱之前指定 void 可以幫助跨語言相容性:與 C 程式碼的介面。透過使用 void foo(void),開發人員可以確保兩種語言對函數簽名的解釋一致,從而促進更輕鬆的程式碼維護和可攜性。

以上是C 與 C:`void foo()` 和 `void foo(void)` 有什麼不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn