1. 程式人生 > >對c&c++原始檔和標頭檔案分開的好處的一點認識

對c&c++原始檔和標頭檔案分開的好處的一點認識

對c&c++程式來說,基本上來說都是要把原始檔和標頭檔案分別編寫。一般都是代表一個基本功能的原始檔引用相應的標頭檔案。

一個 相關功能的模組可能有若干對原始檔和標頭檔案組成。這是基於元件程式設計的核心。

在我看來,他的好處是巨大的,是java不可比擬的,也是不可複製的:

c語言中標頭檔案中一般定義了函式的宣告、結構體的定義、巨集定義。(常量和全域性變數最好放到原始檔中)

1)   從業務擴充套件性上看:標頭檔案中放函式的宣告,函式由原始檔實現,這就是將面向介面程式設計:介面和實現分開,這在面對業務變更頻繁的需求中技術實現的好處是顯而易見的--只要定義出良好地、擴充套件性高的介面,實現是可以很方便的更換。

2)  從程式架構上看:程式碼在在大型程式中 需要分成不同的模組,單一模組中又可能分為不同的業務功能單元,他們間有很多相互的呼叫。

      標頭檔案中的方法宣告、結構體定義、巨集就都可以充當這部分的模組與模組間、業務功能單位間的介面呼叫。模組與模組間,功能單元與功能單元間都是面向介面的呼叫,耦合性低,這正是基於元件程式設計的核心思想。

3) 從某些技術角度實現上看:標頭檔案可通過巨集定義來保證類定義、結構體定義、巨集定義的唯一性。確實很方便,不容易出錯。

    在用makefile編譯程式時,各個功能單元單獨編譯,構成中間檔案.最終這些中間檔案連結成可執行程式,在這些中間檔案中重複引用同一標頭檔案是不可避免的。但如果標頭檔案有保護性程式設計就可以很容易保證類、結構體、巨集定義的唯一性 ----最終連結成可執行程式時,可執行程式中程式碼區中只會有唯一的類、結構體、巨集的定義,其他都因為不滿足唯一性保護失效。這樣的實現是不是很‘優雅’:)))? 我不知道你是否是這樣認為,至於我,我是這樣認為,haha~

另: 鐵道系統出事就是現實社會的影子,其他的,如國土管理、教育、甚至中國足球都是。但願天佑中國,改變這一切,也改變我們的民族略根性