1

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

我可以看到的替代方案是:

  • 包括stdint.h标题本身(危险,不是吗?)
  • 如果在解析标头时未包含某些内容,则将其标记给编译器(例如#ifndef _STDINT_H附带#error "stdint.h not included"
  • 教育其他开发人员始终包括stdint.h在我需要它的任何标题之前,无论是使用评论、对话、文档还是三者的混合(最后一个更可取)。

如果还有其他值得一提的替代方案,请随意这样做 - 我只是在猜测我应该在这里做什么。

4

2 回答 2

7

如果您stdint.h在标题中使用类型,则确实应该包含stdint.h在该标题中。

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

于 2012-04-15T11:52:57.477 回答
0

我的意见是,如果您使用包含防护,则可以在头文件中包含头文件。

就像是

# ifndef HEADER
     # define HEADER
     # include header.h
# endif
于 2012-04-15T11:29:31.100 回答