本文旨在探讨头文件之间存在依赖关系时,包含顺序的影响。
分两种情况讨论:
-
头文件A单方面依赖头文件B:
struct.h:struct abc { int num; char *ptr; };
def.h:typedef struct abc ABC;
main.c:
运行正常,def.h 在 struct.h之前包含进来,并没有报错。 -
头文件A.B之间互相依赖:
def.h
struct.h:
main.c:
依旧运行正常
结论
头文件在展开时并不进行检查。所以即使它们互相之间有依赖关系,编译运行也不会出错。