將 C 定義放在頭文件中是通用規範嗎?
一個人的程式設計風格決定了類別聲明儲存在包含檔案中,而定義則儲存在包含檔案中駐留在單獨的 .cpp 檔案中。這種方法符合 Loki 在「C 頭文件,程式碼分離」一文中廣為人知的答案中概述的原則。
但是,一位同事堅持 C 聲明通常應包含同一頭文件中的定義。他認為這是一種普遍採用的現代做法。
驗證這種做法的普遍性
為了確定這種說法的有效性,讓我們檢查一下觀察到的常見做法這一行業。
回覆
您同事的說法不正確。廣泛的做法一直是並且仍然是將程式碼保留在 .cpp 檔案(或其他指定的副檔名)中並將聲明保留在標頭中。
雖然將程式碼放在標頭中偶爾會有好處,例如增強的編譯器內聯,由於程式碼在包含時的重複處理,它也可能導致編譯時間延長。此外,當程式碼包含在標頭中時,它可能會引入循環物件關係的複雜性。
總之,分離程式碼和聲明的流行做法符合您的偏好,這與您同事的說法相反。
異常和說明
模板出現了一個值得注意的異常。像 boost 這樣的現代庫大量使用模板,並經常採用“僅標題”方法。然而,這是一個專門適用於模板的獨特場景。
僅標頭程式碼的缺點
考慮只寫標頭程式碼的缺點非常重要:
結論
分離聲明和定義的傳統做法仍然是C 的主導方法。雖然在某些特定情況下,僅標頭程式碼可能會有所幫助,但了解其限制並明智地使用它至關重要。聲稱普遍採用僅標頭定義是沒有根據的,建議保持分離代碼和聲明的既定實踐。
以上是將 C 定義放入頭檔真的是通用規範嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!