【问题标题】:#include in header files in embedded [duplicate]#include 在嵌入的头文件中[重复]
【发布时间】:2017-06-03 11:42:37
【问题描述】:

我正在阅读一本嵌入式 C 标准书籍,我注意到以下内容:

任何头文件都不应包含#include 语句

我应该如何处理具有非标准类型的函数声明?

示例:void function(some_funky_type x);

【问题讨论】:

  • 您应该将它们包含在头文件中。这种说法是无稽之谈。我正在开发一个符合 SIL2 标准的嵌入式系统,而且我们确实在头文件中包含了包含语句。
  • 嵌入式系统上的包含有什么问题?该标准有其标头列表,这些标头必须出现在独立环境的所有符合要求的实现中。
  • 这本书第一次出版是什么时候?
  • Indian Hill C Style and Coding Standards(大约 1997 年)公布了这一理论。它是由受人尊敬的人制作的。普遍共识已经改变,现代实践不再接受该指南。
  • 大家为嵌入式 C 推荐什么代码标准?这个应该是不错的。

标签: c file header include embedded


【解决方案1】:

把那本书扔掉;这绝对是垃圾。事实上,你应该把它烧掉,以确保没有其他可怜的灵魂捡到它。

头文件应该绝对包含自给自足所需的所有头文件。没有什么比仔细调整 #include 语句的顺序更糟糕的了,以确保在包含之前已经定义了所需的类型。

【讨论】:

  • 好的。我同意这一点。这就是我通常做的事情,然后我读了这篇文章并认为我犯了一个错误。也许使用旧工具更容易在标题中没有标题。另外,它是一本电子书,我必须 Shift+Delete
【解决方案2】:

正是由于您确定的原因,这是一个愚蠢且适得其反的规则。另一种方法是让每个 .c 文件包含随后包含的标头所需的所有 .h 文件。您可以想象,如果您在通常包含的标头中引入新的依赖项,您现在必须更新包含该标头的每个 C 文件。

【讨论】:

    猜你喜欢
    • 2018-03-11
    • 2011-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 2017-10-13
    相关资源
    最近更新 更多