1. 程式人生 > >C++標頭檔案與多檔案結構

C++標頭檔案與多檔案結構

標頭檔案

在將一個程式分解成若干個檔案時,需要考慮識別符號在其他檔案中的可見性。使用標頭檔案是一個很有效的方法。如: # include<iostream.h>

其中的iostream.h是系統定義的一個檔案,這種以“.h”命名的檔案稱為“標頭檔案”。系統定義的標頭檔案中定義了一些常用的公用識別符號和函式,使用者只要將標頭檔案包含進自己的檔案,就可使標頭檔案中定義的識別符號在使用者檔案中變得可見,也就可以直接使用標頭檔案中定義的識別符號和函式。

除了系統定義的標頭檔案外,使用者還可以自定義標頭檔案。什麼樣的內容適合放在標頭檔案裡?對於具有外部儲存型別的識別符號,可以在其他任何一個源程式檔案中經聲明後引用,因此使用者完全可以將一些具有外部儲存型別的識別符號的宣告放在一個頭檔案中

。具體地說,標頭檔案中可以包括:使用者構造的資料型別(如列舉型別),外部變數,外部函式、常量和行內函數等具有一定通用性或常用的量
而一般性的變數和函式定義不宜放在標頭檔案中。

多檔案結構

在開發較大程式時,通常將其分解為多個源程式檔案,每個較小的程式用一個源程式檔案建立。程式經過建立、編譯、連線,成為一個完整的可執行程式。

多檔案結構通過工程進行管理
在工程中建立若干使用者定義的標頭檔案.h源程式檔案.cpp。標頭檔案中定義使用者自定義的資料型別,所有的程式實現則放在不同的源程式檔案中。編譯時每個源程式檔案單獨編譯,如果源程式檔案中有編譯預處理指令,則首先經過編譯預處理生成臨時檔案存放在記憶體,之後對臨時檔案進行編譯生成目標檔案.obj

,編譯後臨時檔案撤銷。所有的目標檔案經聯結器連線最終生成一個完整的可執行檔案.exe

下圖是一個多檔案系統的開發過程。


圖 C++程式開發過程