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

时间:2012-04-15 11:17:54

标签: c header stdint

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

我能看到的替代方案是:

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

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

2 个答案:

答案 0 :(得分:7)

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

通常首选包含头中最少量的文件以减少编译时间。因此,只要有可能,您应该在标头中转发声明类型。由于stdint.h中的类型不能被前向声明(它们只是基本类型的typedef),因此除了在标题中包含stdint.h之外别无选择。

答案 1 :(得分:0)

我的意见,如果你使用包含警卫,包括头文件中的头文件是可以的。

这样的东西
# ifndef HEADER
     # define HEADER
     # include header.h
# endif