C 標頭檔案的作用

2021-06-10 00:10:20 字數 2032 閱讀 4904

標頭檔案

每個c++/c程式通常分為兩個檔案。乙個檔案用於儲存程式的宣告(declaration),稱為標頭檔案。另乙個檔案用於儲存程式的實現(implementation),稱為定義(definition)檔案。

c++/c程式的標頭檔案以「.h」為字尾,c程式的定義檔案以「.c」為字尾,c++程式的定義檔案通常以「.cpp」為字尾(也有一些系統以「.cc」或「.cxx」為字尾)。

1.1 版權和版本的宣告

(1)版權資訊。

(2)檔名稱,識別符號,摘要。

(4)版本歷史資訊。/**

* 檔名稱:filename.h

* 檔案標識:見配置管理計畫書

** 當前版本:1.1

* 作    者:輸入作者(或修改者)名字

* 完成日期:2023年7月20日

** 取代版本:1.0

* 原作者  :輸入原作者(或修改者)名字

* 完成日期:2023年5月10日

*/示例1-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-1,此處省略。

#ifndef   graphics_h  // 防止graphics.h被重複引用

#define   graphics_h

#include // 引用標準庫的標頭檔案

…#include 「myheader.h」   // 引用非標準庫的標頭檔案

…void function1(…);   // 全域性函式宣告

…class box             // 類結構宣告

;#endif

示例1-2 c++/c標頭檔案的結構

1.3 定義檔案的結構

定義檔案有三部分內容:

(1)       定義檔案開頭處的版權和版本宣告(參見示例1-1)。

(2)       對一些標頭檔案的引用。

(3)       程式的實現體(包括資料和**)。

假設定義檔案的名稱為 graphics.cpp,定義檔案的結構參見示例1-3。

// 版權和版本宣告見示例1-1,此處省略。

#include 「graphics.h」     // 引用標頭檔案

…// 全域性函式的實現體

void function1(…)

// 類成員函式的實現體

void box::draw(…)

示例1-3 c++/c定義檔案的結構

1.4 標頭檔案的作用

早期的程式語言如basic、fortran沒有標頭檔案的概念,c++/c語言的初學者雖然會用使用標頭檔案,但常常不明其理。這裡對頭檔案的作用略作解釋:

(1)通過標頭檔案來呼叫庫功能。在很多場合,源**不便(或不准)向使用者公布,只要向使用者提供標頭檔案和二進位制的庫即可。使用者只需要按照標頭檔案中的介面宣告來呼叫庫功能,而不必關心介面怎麼實現的。編譯器會從庫中提取相應的**。

(2)標頭檔案能加強型別安全檢查。如果某個介面被實現或被使用時,其方式與標頭檔案中的宣告不一致,編譯器就會指出錯誤,這一簡單的規則能大大減輕程式設計師除錯、改錯的負擔。

C 標頭檔案的作用

通常,在乙個c 程式中,只包含兩類檔案 cpp檔案和.件。其中,cpp檔案被稱作c 原始檔,裡面放的都是c 的源 而.件則被稱作c 標頭檔案,裡面放的也是c 的源 c 語言支援 分別編譯 separate compilation 乙個程式包含多個.cpp檔案時,這些.cpp檔案可分別編譯成各自的目標...

C語言標頭檔案的作用

c99中規定,所有頂層的預設儲存類標誌符都是extern 老子又猜對了 標頭檔案中宣告的函式,預設都是extern字首。但是為了我們程式設計師方便,我們採取下面的手段 我個人認為是extern催生了標頭檔案的誕生。在沒有標頭檔案的情況下,所有本.c檔案引用的外部函式定義,都要在自己.c檔案內宣告 並...

C 標頭檔案 h的作用

收到c語言,必然會用到.h檔案,它有什麼樣的作用?整理各網路資料,如下基本功能描述 理論概述 h中一般放的是同名 c檔案中定義的變數 陣列 函式的宣告,需要讓 c外部使用的宣告。1 h檔案作用 1.方便開發 包含一些檔案需要的共同的常量,結構 型別定義,函式 變數申明 2.使函式的作用域從函式宣告的...