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