極小
標頭是一種關鍵的一致性檢查機制,但它們應儘可能小。特別是,這意味著標頭不應該包含其他標頭,因為實現檔案需要其他標頭。標頭應僅包含所述服務的使用者所需的那些標頭。
例如,專案標題不應包含 <stdio.h>
,除非其中一個函式介面使用 FILE *
型別(或僅在 <stdio.h>
中定義的其他型別之一)。如果一個介面使用 size_t
,那麼最小的標題就是 <stddef.h>
。顯然,如果包含定義 size_t
的另一個標題,則也不需要包含 <stddef.h>
。
如果標頭是最小的,那麼它也將編譯時間保持在最小。
可以設計標題,其唯一目的是包含許多其他標題。從長遠來看,這些很少會成為一個好主意,因為很少有原始檔實際上需要所有標頭描述的所有設施。例如,可以設計一個包含所有標準 C 頭的 <standard-c.h>
- 小心,因為一些頭並不總是存在。然而,很少有程式實際使用 <locale.h>
或 <tgmath.h>
的設施。
- 另請參見如何在 C 中連結多個實現檔案?