如果有两个头文件:a.h和b.h,在a.h中引用b.h,然后在b.h中引用a.h。然后在一个c.cpp文件同时引用这两个头文件,编译c.cpp,哈哈,看见GCC就这样引用来引用去,CPU占了100%,进入了死循环。
一般情况下当然很容易检查出这样的问题,但是大项目中就可能存在头文件们绕了一个大圈,最后还是相互包含了的情况,编译器显示些奇怪的错误,根本无法从错误信息定位到原因。
解决的办法还是最简单的
#ifndef _XXX_H_
#define _XXX_H_
//code
#endif
这样就算头文件相互包含,也不会发生问题了。可见,这种基本的东西,一定一定要加上!
C++学习笔记:头文件互引用引起的编译器错误
最新推荐文章于 2022-09-27 21:46:33 发布