C++/C的文件結構

 

C++/C的文件結構

對於C++/C的程序開發員來說,文件結構這一內容是很重要的一塊,我們知道,每個C++/C程序通常分爲兩個文件。一個爲頭文件,用於保存程序的聲明(declaration)。另一個爲定義(definition)文件,用於保存程序的實現(implementation)。在編程時若能掌握一些技能是很有幫助的。下面就來講講這個編程方面的要點。

 

C++/C程序的頭文件以“.h”爲後綴,C程序的定義文件以“.c”爲後綴,C++程序的定義文件通常以“.cpp”爲後綴(也有一些系統以“.cc”或“.cxx”爲後綴)。

 

1.版權和版本的聲明

版權和版本的聲明位於頭文件和定義文件的開頭(參見示例1-1),主要內容有:

(1)版權信息。

(2)文件名稱,標識符,摘要。

(3)當前版本號,作者/修改者,完成日期。

(4)版本歷史信息。 

示例1-1 版權和版本的聲明 

 

2 .頭文件的結構

頭文件由三部分內容組成:

(1)頭文件開頭處的版權和版本聲明(參見示例1-1)。

(2)預處理塊。

(3)函數和類結構聲明等。

假設頭文件名稱爲 graphics.h,頭文件的結構參見示例1-2。

【規則1-2-1】爲了防止頭文件被重複引用,應當用ifndef/define/endif結構產生預處理塊。

【規則1-2-2】用 #include 格式來引用標準庫的頭文件(編譯器將從標準庫目錄開始搜索)。

【規則1-2-3】用 #include “filename.h” 格式來引用非標準庫的頭文件(編譯器將從用戶的工作目錄開始搜索)。

【建議1-2-1】頭文件中只存放“聲明”而不存放“定義”

在C++ 語法中,類的成員函數可以在聲明的同時被定義,並且自動成爲內聯函數。這雖然會帶來書寫上的方便,但卻造成了風格不一致,弊大於利。建議將成員函數的定義與聲明分開,不論該函數體有多麼小。

【建議1-2-2】不提倡使用全局變量,儘量不要在頭文件中出現象extern int value 這類聲明。 

 

 

示例1-2 C++/C頭文件的結構 

3 .定義文件的結構

定義文件有三部分內容:

(1)定義文件開頭處的版權和版本聲明(參見示例1-1)。

(2)對一些頭文件的引用。

(3)程序的實現體(包括數據和代碼)。

假設定義文件的名稱爲 graphics.cpp,定義文件的結構參見示例1-3。

 

示例1-3 C++/C定義文件的結構 

 

 

4. 頭文件的作用

 

早期的編程語言如Basic、Fortran沒有頭文件的概念,C++/C語言的初學者雖然會用使用頭文件,但常常不明其理。這裏對頭文件的作用略作解釋:

 

(1)通過頭文件來調用庫功能。在很多場合,源代碼不便(或不準)向用戶公佈,只要向用戶提供頭文件和二進制的庫即可。用戶只需要按照頭文件中的接口聲明來調用庫功能,而不必關心接口怎麼實現的。編譯器會從庫中提取相應的代碼。

 

(2)頭文件能加強類型安全檢查。如果某個接口被實現或被使用時,其方式與頭文件中的聲明不一致,編譯器就會指出錯誤,這一簡單的規則能大大減輕程序員調試、改錯的負擔。

 

5. 目錄結構

 

如果一個軟件的頭文件數目比較多(如超過十個),通常應將頭文件和定義文件分別保存於不同的目錄,以便於維護。

 

例如可將頭文件保存於include目錄,將定義文件保存於source目錄(可以是多級目錄)。

 

如果某些頭文件是私有的,它不會被用戶的程序直接引用,則沒有必要公開其“聲明”。爲了加強信息隱藏,這些私有的頭文件可以和定義文件存放於同一個目錄。  

 

http://www.cnblogs.com/Goldworm/archive/2012/05/21/2511905.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章