跳至內容

標頭檔

出自Taiwan Tongues 客語維基
於 2025年8月23日 (六) 18:00 由 TaiwanTonguesApiRobot留言 | 貢獻 所做的修訂 (從 JSON 檔案批量匯入)

(差異) ←上個修訂 | 已批准修訂 (差異) | 最新修訂 (差異) | 下個修訂→ (差異)

在程式設計當中,特別係在 C 語言同 C + + 中,標頭檔抑係包含檔案係一個檔案,一般係原始碼个形式,由編譯器在處理另外一隻原始檔个時節自動包含入來。一般來講,程式設計師通過編譯器指令同標頭檔包含其他原始檔个開始(抑係 _ 頭那 _)。

一個標頭檔一般包含類、子程式、變數還有其他識別碼个前置聲明。需要在一個以上个原始檔裡肚分聲明个識別碼做得分人放在一個標頭檔中,並在需要个地方包含這個標頭檔。

在 C 語言同 C + + 中,標準庫函式習慣上在標頭檔當中聲明,參見 C 標準函式庫摎 C + + 標準函式庫。

作用

在大部分現代電腦程式語言當中,程式做得分到像子程式个還較細組件,這兜組件做得通過當多物理源檔案分發,這兜原始檔分人單獨編譯。當一個子程式在定義个位置以外个地方分人使用个時節,斯需要引入前置聲明摎函式原型个概念。比將講,一個函式在一個原始檔中有如下定義:

在另外一個原始檔中參照个時節就做得聲明成恁樣(包含函式原型):

毋過,這個簡單个方法需要程式設計師為 ` add ` 在兩隻地方維護函式聲明,一個係包含函式實現个檔案,還過使用該函式个檔案。係講函式个定義改變了,程式設計師必須愛更改散布在程式當中个所有原型。

標頭檔提供了解決辦法。模組个標頭檔聲明作為模組 _ 𠊎共介面 _ 一部分个每一隻函式、物件還過資料類型。比將講,在底下个情況下,標頭檔單淨包含 ` add ` 个聲明。逐儕參加照顧咧 ` add ` 个原始檔使用 ` # include ` 來包含標頭檔:恁樣就減少了維護个負擔:當定義改變个時節,淨愛更新聲明个一隻獨立副本(在標頭檔中个該個)。 在包含對應个決定之後也做得包含標頭檔,這分編譯器一個檢查聲明摎定義一致性个機會。一般,標頭檔分人用來唯一指定个介面,還過多少提供一兜文件來說明仰仔使用在這檔案當中聲明个組件。在這個例仔裡背,子程式个實現放在一個單獨个原始檔中,這個原始檔分人單獨編譯。(在 C 摎 C ++ 中有一個例外,即行內函式。行內函式大體都放在標頭檔裡背,因為大部分係講毋知佢定義,在編譯時就無辦法適當个展開行內函式。)

替代

在存取聲明在無共樣檔案當中个識別碼問題頂項,標頭檔毋係唯一个解決方法。佢兜也有缺點,當定義改變个時節可能仍然需要在兩個所在來修改(標頭檔摎原始檔)。 有兜更新个語言(像係 Java)省略忒標頭檔,使用安名方案(namingscheme), 這就允准編譯器來定位摎介面摎類實現相關个原始檔。

# include 語句个兩種語法

` # include ` 語句有兩種方式包含標頭檔,分別係使用雙引號 `" " ` 摎左右尖括號 ` < > `。區別係(對毋係使用完全檔案路徑名个)標頭檔个搜尋順序無共樣:

使用雙引號 ` " " ` 標頭檔个搜尋順序:

一 . 包含該 ` # include ` 語句个原始檔所在目錄; 二 . 包含該 ` # include ` 句話既經打開个標頭檔个逆序(因為標頭檔做得 ` # include ` 另外一個標頭檔造成一個序列); 三 . 編譯選項- I 指定个目錄四 . 環境變數 INCLUDE 所定義个目錄使用左右尖括號 ` < > ` 標頭檔个搜尋順序:

一 . 編譯選項 - I 指定个目錄二 . 環境變數 INCLUDE 所定義个目錄

參見

  • 應用程式紹介面
  • 介面描寫語言
  • # pragma once

外部連結

  • 組織代碼檔案(還有使用標頭檔个陷阱)
  • C+ + 標頭檔包含規則