Can you summarize the following document?
        
  在大多數現代計算機程式語言中,程式可以被分成如子程式的更小的元件,這些元件可以通過許多物理原始檔分發,這些原始檔被單獨編譯。當一個子程式在定義的位置以外的地方被使用時,就需要引入前置宣告和函式原型的概念。例如,一個函式在一個原始檔中有如下定義:  在另一個原始檔中引用的時候就可以宣告成這樣(包含函式原型): 但是,這個簡單的方法需要程式設計師為codice_1在兩個地方維護函式宣告,一個是包含函式實現的檔案,以及使用該函式的檔案。如果函式的定義改變了,程式設計師必須要更改散佈在程式中的所有的原型。  標頭檔案提供瞭解決辦法。模組的標頭檔案宣告作為模組"公共介面"一部分的每一個函式、物件以及資料型別。例如,在下面的情況下,標頭檔案僅包含codice_1的宣告。每一個引用了codice_1的原始檔使用codice_4來包含標頭檔案:  這樣就減少了維護的負擔:當定義改變的時候,只須更新宣告的一個獨立副本(在標頭檔案中的那個)。在包含對應的定義的原始檔中也可以包含標頭檔案,這給了編譯器一個檢查宣告和定義一致性的機會。  通常,標頭檔案被用來唯一指定介面,且多少提供一些文件來說明如何使用在該檔案中宣告的元件。在這個例子中,子程式的實現放在一個單獨的原始檔中,這個原始檔被單獨編譯。(在C和C++中有個例外,即行內函數。行內函數通常放在標頭檔案中,因為大多數實現如果不知道其定義,在編譯時便無法適當的展開行內函數。)

  在訪問宣告在不同檔案中的識別符號問題上,標頭檔案不是唯一的解決方法。他們也有缺點,當定義改變的時候可能仍然需要在兩個地方來修改(標頭檔案和原始檔)。一些更新的語言(如Java)省略掉了標頭檔案,而使用命名方案(naming scheme),這就允許編譯器來定位與介面和類實現相關的原始檔。

  codice_4語句有兩種方式包含標頭檔案,分別是使用雙引號codice_6與左右尖括號codice_7。其區別是(對於不是使用完全檔案路徑名的)標頭檔案的搜尋順序不同:  使用雙引號codice_6的標頭檔案的搜尋順序:  使用左右尖括號codice_7的標頭檔案的搜尋順序:
在程式設計中,特別是在C語言和C++中,標頭檔案或包含檔案是一個檔案,通常是原始碼的形式,由編譯器在處理另一個原始檔的時候自動包含進來。一般來說,程式設計師通過編譯器指令將標頭檔案包含進其他原始檔的開始(或"頭部")。