先有**还是先有蛋?如何声明一个未定义数据类型的函数?

[复制链接]
2898|7
 楼主| qq65411253 发表于 2013-6-21 18:11 | 显示全部楼层 |阅读模式
我在ucgui里面声明并调用了一个读spiflash的函数,函数的声明如下:
extern ErrorStatus spiflash_readdata (u32, u16, u8 *);
其中ErrorStatus是个枚举类型,在ucgui里面没有定义的。而ErrorStatus的定义又只能在ucgui后面。所以编译器报错。我在谷歌上找了好久没有看到解决这种先声明后定义的方法。我想,要么这个问题没人碰到过(可能性很小),要么解决起来很容易,所以没有人讨论。如果哪位高手知道解决方法请指点一下。先谢了!
pangencao 发表于 2013-6-21 19:19 | 显示全部楼层
枚举定义copy到函数声明前面,以后要注意枚举定义的版本维护。
最好用统一的头文件。
 楼主| qq65411253 发表于 2013-6-21 19:27 | 显示全部楼层
这个枚举定义是st库里面的,而引用是在ucgui里面。如果单独提取定义并放在前面,就破坏了各自的完整性,影响整个工程的结构。看样子只能付出点代价了。
fp123123 发表于 2013-6-21 20:06 | 显示全部楼层
枚举是一个int,改一下函数声明就可以
yylfcxpx168 发表于 2013-6-21 23:17 | 显示全部楼层
枚举是一个int,改一下函数声明就可以
jekey 发表于 2013-6-23 10:42 | 显示全部楼层
包含相关头文件即可。
Regsen 发表于 2013-6-24 20:51 | 显示全部楼层
是啊。包含相关头文件吧不就可以了
令狐神逸 发表于 2013-6-24 21:05 | 显示全部楼层
看完不顶什么心态?不够觉悟吗?火前留名不知吗?强势插了不知吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

629

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部