本文旨在探讨头文件之间存在依赖关系时,包含顺序的影响。 分两种情况讨论: 头文件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: 依旧运行正常 结论 头文件在展开时并不进行检查。所以即使它们互相之间有依赖关系,编译运行也不会出错。