智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 1616|回复: 3
打印 上一主题 下一主题

求大神,关于函数指针的问题。

[复制链接]

2

主题

6

帖子

0

精华

高级会员

Rank: 4

积分
567
威望
280
贡献
195
兑换币
169
注册时间
2013-2-19
在线时间
46 小时
跳转到指定楼层
1#
发表于 2014-11-17 08:12:36 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
CodeWarrior5.1编译,函数指针这里出现奇怪的警告,求大神分析一下。
经过试验程序在MC9S12D64片子里边跑表面上没有问题,但是有警告就是很不爽。
  1. #include "common.h"


  2. typedef void (*FUN_PTR)(void);

  3. FUN_PTR fun1(void)
  4. {
  5.   uint8 i = 10;
  6.   while(i--)  ;
  7. }

  8. void LoadFun(FUN_PTR callback)
  9. {
  10.   callback();
  11. }


  12. void main(void)
  13. {
  14.   /* put your own code here */

  15.   LoadFun(fun1);

  16. }
  17.   
复制代码


Warning : C1404: Return expected

main.c line 6   

Warning : C1825: Indirection to different types ('void (*)()(*)()' instead of 'void (*)()')

main.c line 22   


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

4

主题

158

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1933
威望
1075
贡献
636
兑换币
719
注册时间
2013-8-4
在线时间
111 小时
毕业学校
本科
4#
发表于 2014-11-17 09:15:28 | 只看该作者
你把func1定义为返回函数指针类型FUN_PTR的函数了。
事实上你需要将func1定义为返回void
回复 支持 反对

使用道具 举报

1

主题

373

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
14252

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

威望
6571
贡献
4551
兑换币
4005
注册时间
2012-1-8
在线时间
1565 小时
3#
发表于 2014-11-17 08:30:51 | 只看该作者
  • #include "common.h"
  • typedef void (*FUN_PTR)(void);
  • void fun1(void)
  • {
  •   uint8 i = 10;
  •   while(i--)  ;
  • }
  • void LoadFun(FUN_PTR callback)
  • {
  •   callback();
  • }
  • void main(void)
  • {
  •   /* put your own code here */
  •   LoadFun(fun1);
  • }

回复 支持 反对

使用道具 举报

1

主题

373

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
14252

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

威望
6571
贡献
4551
兑换币
4005
注册时间
2012-1-8
在线时间
1565 小时
2#
发表于 2014-11-17 08:17:20 | 只看该作者
函数类型可以声明为返回类型??
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-26 16:33 , Processed in 0.064002 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表