极小

标头是一种关键的一致性检查机制,但它们应尽可能小。特别是,这意味着标头不应该包含其他标头,因为实现文件需要其他标头。标头应仅包含所述服务的使用者所需的那些标头。

例如,项目标题不应包含 <stdio.h>,除非其中一个函数接口使用 FILE *类型(或仅在 <stdio.h> 中定义的其他类型之一)。如果一个接口使用 size_t,那么最小的标题就是 <stddef.h>。显然,如果包含定义 size_t 的另一个标题,则也不需要包含 <stddef.h>

如果标头是最小的,那么它也将编译时间保持在最小。

可以设计标题,其唯一目的是包含许多其他标题。从长远来看,这些很少会成为一个好主意,因为很少有源文件实际上需要所有标头描述的所有设施。例如,可以设计一个包含所有标准 C 头的 <standard-c.h> - 小心,因为一些头并不总是存在。然而,很少有程序实际使用 <locale.h><tgmath.h> 的设施。