Keil编译器在SDK示例中报告的枚举错误

4个职位/0个新职位
最后一篇文章
布莱恩
离线
最后一次见到:5年11个月前
专家 硕士
已加入:2014-10-16 18:10
Keil编译器在SDK示例中报告的枚举错误

在模板项目中,使用gap.h中的Keil编译器会得到一个错误

///随机地址类型

枚举间隔地址类型
{
///静态随机地址
GAP\ u STATIC\ u ADDR=SMPM\ u ADDR\ u TYPE\ u STATIC,
///专用不可解析地址
GAP\ U NON\ U RSLV\ U ADDR=SMPM\ U ADDR\ TYPE\ U PRIV\ U NON\ U RESOLV型,
///专用可解析地址
GAP\u RSLV\u ADDR=SMPM\u ADDR\u TYPE\u PRIV\u RESOLV,
};

在这种情况下,一个枚举正被smpm.h中定义的另一个枚举删除,该枚举是

/**
*随机地址类型
*/
枚举smpm\u rand\u addr\u类型
{
///私有不可解析-00(MSB->LSB)
SMPM\u ADDR\u TYPE\u PRIV\u NON\u RESOLV=0x00,
///私人可解决-01
SMPM\u ADDR\u TYPE\u PRIV\u RESOLV=0x40,
///静态-11
SMPM\u ADDR\u TYPE\u STATIC=0xC0,
};

编译器报告的错误是gap.h中gap\u rnd\u addr\u类型枚举的值未定义。枚举的这种嵌套用法看起来很奇怪。为什么会发生这种情况,我能做些什么来解决它。(请注意,这不是我编写的代码,而是由DS和/或RW完成的。谢谢你的决定。

哦,是的,smpm.h头包含在gap.h头中。

MHv\U对话框
离线
最后一次见到:5天11小时前
工作人员
已加入:2013-12-06 15:10
我不太明白

我不太明白这个问题。你是说你不能编译模板项目代码吗?我可以毫无问题地编译它。

布莱恩
离线
最后一次见到:5年11个月前
专家 硕士
已加入:2014-10-16 18:10
除非我写,否则它会编译

除非我编写代码引用有错误的项,否则它将编译。我迫不及待地等待一个答案,所以我硬编码枚举,并摆脱了错误。我不知道后果。

克里姆9531
离线
最后一次见到:4年2个月前
已加入:2015-01-28 23:52
我看到问题描述了

我在fh项目代码以及我第一次注意到的模板中看到了上面描述的问题。编译和运行都很好。有效的问题是:即使存在“变通方法”(将smpm.h文件中的枚举值直接硬编码到gap.h文件中),为什么引用会失败?鲁莽地编辑公共代码是不好的做法。