[ZLG-ARM] 函数指针问题

[复制链接]
2280|3
 楼主| jie841010 发表于 2008-9-8 09:19 | 显示全部楼层 |阅读模式
不再返回的函数如下,可以成功编译执行,但带返回参数的函数却编译通不过,想请教下带参数的函数指针如何实现,指向绝对地址。<br /><br />一,void型,OK<br /><br />void&nbsp;(*WriteQuickPort)(void);&nbsp;<br /><br />WriteQuickPort&nbsp;=&nbsp;(void(*)())0x0968;<br /><br />二,带参数返回型,不成功.<br /><br />uint16&nbsp;(*GetCRC)(uint8&nbsp;*Array,uint8&nbsp;DataCount&nbsp;)&nbsp;;<br /><br />GetCRC&nbsp;=&nbsp;(uint16*)0x08c4;<br /><br />GetCRC&nbsp;=&nbsp;(uint16(*)())0x08c4;<br /><br />这两种指向都不行,应该怎么做呢?<br /><br />Error&nbsp;&nbsp;&nbsp;:&nbsp;C3028E:&nbsp;'=':&nbsp;implicit&nbsp;cast&nbsp;of&nbsp;pointer&nbsp;to&nbsp;non-equal&nbsp;pointer<br />CassEngine.c&nbsp;line&nbsp;68&nbsp;&nbsp;&nbsp;<br /><br />C:\Documents&nbsp;and&nbsp;Settings\jackey\桌面\踪迹\9-6\lpc2212\CassEngine.c:&nbsp;32&nbsp;warnings,&nbsp;1&nbsp;error,&nbsp;0&nbsp;serious&nbsp;errors<br /><br />
HWM 发表于 2008-9-8 09:22 | 显示全部楼层

没有参数

  
农民讲习所 发表于 2008-9-8 09:22 | 显示全部楼层

GetCRC = (void *)0x08c4,通用指针。

uint16*没有这个类型
hzh 发表于 2008-9-9 22:47 | 显示全部楼层

简单问题复杂化~~

调用函数时需要找到函数的指针。<br />而返回语句却改变了这个指针的数值,那么下一次调用这个函数时,怎么办呢?!<br />不就是想返回一个指针嘛,为什么不在参数表里加个指针参数呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

34

帖子

0

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