为了账号安全,请及时绑定邮箱和手机立即绑定

头文件相互包含的问题

头文件相互包含的问题

C++
千巷猫影 2018-11-08 14:14:42
第一个头文件map.h包含如下代码:#include "stack.h"int MazePath(Map map,int row,int col,int n,Stack *s);  //(2)声明函数 第二个头文件stack.h包含如下代码:#include "map.h"typedef struct stack{    int Top,Maxstack;    DATA_TYPE Element[MAXSIZE];        /* 顺序存储堆栈 */}Stack;              //定义Stack类型虽然stack.h中定义了Stack类型,但是因为编译器在展开stack.h时先包含map.h进来,此时map.h中的Stack尚未定义,于是就出现错误:expected declaration specifiers or '...' before 'Stack'   , 指标号(2)处的代码出错。我想问如果在头文件相互包含时应该注意什么问题,有什么方法可以解决这种类似的冲突,还有什么书籍资料可以提供阅读参考?
查看完整描述

2 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

在其中一个头文件中用声明,例如在map.h中直接 声明 (不是定义)Stack,然后不要包含stack.h头文件试试。


查看完整回答
反对 回复 2018-11-15
  • 2 回答
  • 0 关注
  • 682 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信