首頁  >  文章  >  後端開發  >  C 定義應該永遠放在頭檔中嗎?

C 定義應該永遠放在頭檔中嗎?

DDD
DDD原創
2024-11-26 08:09:14853瀏覽

Should C   Definitions Always Be Placed in Header Files?

C 頭檔:定義放置

您的同事關於所有C 聲明和定義應放置在頭文件中的斷言是沒有根據的。無論是歷史上還是現在,C 中的常見做法仍然是將程式碼定義分離到 .cpp 檔案中並在頭檔中聲明。

定義分離的原因

  • 控制編譯時間:編譯標頭中的所有程式碼會顯著增加編譯時間,尤其是當大量文件包含相同的標題。這對於大型專案來說尤其成問題。
  • 避免循環物件關係:當程式碼放置在標頭中時,可能會導致循環物件依賴關係,這可能很難解決。
  • 全域物件的有限範圍:由於存在多個定義的風險,僅標頭程式碼不能包含簡單的全域物件當包含在多個原始檔中時。

例外:模板

此規則的顯著例外是模板。像 Boost 這樣的現代 C 函式庫廣泛使用模板,這需要在標頭中進行定義以允許內聯優化。然而,這種做法應該僅限於模板。

只標頭程式碼的缺點

雖然只標頭程式碼對範本來說很方便,但它有幾個缺點:

  • 增加編譯時間,使得開發和重構較慢。
  • 功能有限,因為某些功能(例如全域物件)無法在僅標頭程式碼中實現。
  • 潛在的重新編譯問題,因為更改需要重新編譯整個文件

結論

儘管你的同事聲稱,將定義分離到.cpp 檔案中並在頭檔中聲明仍然是C 中維護的首選方法程式碼組織、最佳化編譯時間並避免潛在的陷阱。

以上是C 定義應該永遠放在頭檔中嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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