打印

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

[复制链接]
2519|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,改一下函数声明就可以

使用特权

评论回复
5
yylfcxpx168| | 2013-6-21 23:17 | 只看该作者
枚举是一个int,改一下函数声明就可以

使用特权

评论回复
6
jekey| | 2013-6-23 10:42 | 只看该作者
包含相关头文件即可。

使用特权

评论回复
7
Regsen| | 2013-6-24 20:51 | 只看该作者
是啊。包含相关头文件吧不就可以了

使用特权

评论回复
8
令狐神逸| | 2013-6-24 21:05 | 只看该作者
看完不顶什么心态?不够觉悟吗?火前留名不知吗?强势插了不知吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

12

主题

629

帖子

1

粉丝