我正在阅读嵌入式C标准书,我注意到以下内容:
没有头文件应包含#include语句
如何处理具有非标准类型的函数声明?
示例:void function(some_funky_type x);
答案 0 :(得分:7)
扔掉那本书;这绝对是垃圾。事实上,你应该把它烧掉,以确保没有其他可怜的灵魂能够把它捡起来。
头文件 绝对 应包含他们自给自足所需的所有头文件。没有什么比尝试仔细按下#include
语句的顺序更糟糕的了,以确保在包含它们之前已经定义了所需的类型。
答案 1 :(得分:3)
这正是你确定的原因,这是一个愚蠢和适得其反的规则。另一种选择是每个.c文件都包含随后包含的头所需的所有.h文件。你可以想象,如果你在一个通常包含的头文件中引入一个新的依赖项,你现在必须更新包含该头文件的每个C文件。