打印
[ZLG-ARM]

函数指针问题

[复制链接]
1403|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
jie841010|  楼主 | 2008-9-8 09:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
不再返回的函数如下,可以成功编译执行,但带返回参数的函数却编译通不过,想请教下带参数的函数指针如何实现,指向绝对地址。

一,void型,OK

void (*WriteQuickPort)(void); 

WriteQuickPort = (void(*)())0x0968;

二,带参数返回型,不成功.

uint16 (*GetCRC)(uint8 *Array,uint8 DataCount ) ;

GetCRC = (uint16*)0x08c4;

GetCRC = (uint16(*)())0x08c4;

这两种指向都不行,应该怎么做呢?

Error   : C3028E: '=': implicit cast of pointer to non-equal pointer
CassEngine.c line 68   

C:\Documents and Settings\jackey\桌面\踪迹\9-6\lpc2212\CassEngine.c: 32 warnings, 1 error, 0 serious errors

相关帖子

沙发
HWM| | 2008-9-8 09:22 | 只看该作者

没有参数

使用特权

评论回复
板凳
农民讲习所| | 2008-9-8 09:22 | 只看该作者

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

uint16*没有这个类型

使用特权

评论回复
地板
hzh| | 2008-9-9 22:47 | 只看该作者

简单问题复杂化~~

调用函数时需要找到函数的指针。
而返回语句却改变了这个指针的数值,那么下一次调用这个函数时,怎么办呢?!
不就是想返回一个指针嘛,为什么不在参数表里加个指针参数呢?

使用特权

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

本版积分规则

24

主题

34

帖子

0

粉丝