极小
标头是一种关键的一致性检查机制,但它们应尽可能小。特别是,这意味着标头不应该包含其他标头,因为实现文件需要其他标头。标头应仅包含所述服务的使用者所需的那些标头。
例如,项目标题不应包含 <stdio.h>
,除非其中一个函数接口使用 FILE *
类型(或仅在 <stdio.h>
中定义的其他类型之一)。如果一个接口使用 size_t
,那么最小的标题就是 <stddef.h>
。显然,如果包含定义 size_t
的另一个标题,则也不需要包含 <stddef.h>
。
如果标头是最小的,那么它也将编译时间保持在最小。
可以设计标题,其唯一目的是包含许多其他标题。从长远来看,这些很少会成为一个好主意,因为很少有源文件实际上需要所有标头描述的所有设施。例如,可以设计一个包含所有标准 C 头的 <standard-c.h>
- 小心,因为一些头并不总是存在。然而,很少有程序实际使用 <locale.h>
或 <tgmath.h>
的设施。
- 另请参见如何在 C 中链接多个实现文件?