头文件包含产生的编译错误

今天遇到一个问题,编译时报错,说某个结构体没有定义,但是是实际上该结构体已经定义,经过反复查找,发现是因为头文件包含错误引起的。

具体情况如下:
(1).A.h头文件内容:
……
#include “B.h”
……
//使用结构体声明函数
……
(2).B.h头文件内容:
……
#include “C.h”
……
//定义该结构体
……
(3).C.h头文件内容
……
#include “A.h”
……
……
这样,编译时A.h调用B.h对结构体类型进行定义,但是B.h会先调用C.h,而C.h又会调用A.h,在执行A.h的内容时发现结构体类型还没有定义。

所以,头文件的内容和包含关系应该要引起注意,哪些内容应该放在哪个头文件中;头文件应该以怎样的关系进行包含都需要注意。

分享到: 更多
版权申明:

本站保留所有原创文章的版权,本站地址:奔跑的博客[http://www.elecbench.com]

原创文章转载时请注明出处,并添加文章所在页面的链接:http://www.elecbench.com/%e5%a4%b4%e6%96%87%e4%bb%b6%e5%8c%85%e5%90%ab%e4%ba%a7%e7%94%9f%e7%9a%84%e7%bc%96%e8%af%91%e9%94%99%e8%af%af/

本站所有 2010年3月4日 以后发表、未标明为“转载”的文章均是本站原创。

发表评论


(设置自己的个性头像)

*

申请属于你的免费顶级域名