最佳实践:在头文件中使用stdint类型

Chr*_*wne 1 c header stdint

确保stdint.h包含使用该标头中的类型的标头的最佳方法是什么?

我能看到的替代方案是:

  • 包括stdint.h在标题本身(危险,不是吗?)
  • 如果在解析标题时未包含某些内容,则会将某些内容标记为编译器(类似于#ifndef _STDINT_H附带的内容)#error "stdint.h not included"
  • 教育其他开发人员总是stdint.h在我需要它的任何标题之前包括,使用注释,对话,文档或三者的混合(最后一个是优选的).

如果还有其他值得一提的选择,请随意这样做 - 我只是猜测我应该在这里做些什么.

Job*_*Job 7

如果您stdint.h在标题中使用了类型,那么您真的应该包含stdint.h在该标题中.

通常优选的是从头部包括最少量的文件以减少编译时间.因此,只要有可能,您应该在标头中转发声明类型.由于类型from stdint.h不能被前向声明(它们只是原始类型的typedef),因此除了包含stdint.h在头部中之外没有其他选项.