Mar*_*ark 0 c include header-files
通常,我通常会在头文件中包含依赖项,以便在将该头添加到源文件时,无需挖掘其他所需的头即可进行编译。
但是,在回顾了一些其他编码标准之后,似乎经常禁止这样做,因为头文件将不包含任何#include语句。
我真的对此没有任何讨论-禁止这种做法的原因是什么,或者纯粹是出于偏爱?
-
例如,typedef.h包含U8的typedef。my_header.h声明void display_message(U8 arg);
应该将对typedef.h的引用放入my_source_file.c或my_header.h?
我认为没有充分的理由不允许标头包含其先决条件。
考虑#include从源文件中删除一个。例如,假设代码已被修改为不再使用foo.h,那么该代码#include将被删除。但是源文件有许多#include语句。由于不再需要删除其他哪些?希望foo.h记录其先决条件,以便您可以识别要删除的候选对象。但是,如果删除他们的#include语句,则可能正在删除其他头文件所需的先决条件。因此,您必须检查每个头文件的先决条件。
相反,如果标头包含其先决条件,则只需删除#include <foo.h>并完成标头即可。