頭文件由三部分組成:
1:頭文件開頭出的版本和版權的 聲明。
2:預處理塊。
3:函數和類的結構聲明等。
規則:
(1): 為了防止頭文件被重復的引用,應該使用#ifndef/define/endif結構產生與處理模塊。
(2):用#include<filename.h>來引用標準庫的頭文件(編譯器將從標準庫目錄開始搜索)。
(3):用#include"filename.h"來引用非標準庫的頭文件(編譯器將從用戶工作的目錄開始搜索)
建議:頭文件中一般只存放“聲明”,而不存放“定義”

定義文件的結構:

定義文件的 內容有由三部分組成:
(1):  定義文件開頭處的版本和版權;
(2):對一些頭文件的引用;
(3):程序的實現體(包括數據和代碼)

頭文件的作用:
(1):通過頭文件來調用庫功能。在很多場合源代碼不能(或者不準)提供給用戶。只提供給用頭文件或者二進制的庫。用戶只需要按照頭文件中的接口的聲明來調用庫功能。而不必關心接口是如何實現的。編譯器會從庫中提取相應的代碼。
(2): 頭文件可以用來加強類型安全檢查。如果某個接口被實現或者被實用的時候,其方式和在頭文件中的聲明不一致的時候,編譯器就會報錯。這一簡單的規則可以大大的減輕程序員調試和改錯的負擔。
目錄結構:
如果一個軟件的頭文件比較多(超過10個),就應該把頭文件和定義文件分開。分別保存在不同的目錄之中。以便于維護。
例如:可以將頭文件保存在inluude目錄之中。將定義文件保存在source文件之中。
如果某些頭文件是私有的,不會被程序直接引用,為了加強信息隱藏。那么可以把這些頭文件和定義文件放在同一目錄之中。