mdk程序移植IAR msp430 指针函数出错问题

2020-01-01 17:33发布

mdk程序移植IAR msp430 指针函数出错问题
在mdk5.0中可以正常运行编译通过,然后移植到IAR环境,函数指针报错。

/***************************/
a.c文件中

typedef void (*fun) (void)

struct lcd
{
        ....
        ....
        fun abc;
       ......
}lcd_sta


void *efd (void)
{
        return lcd_sta.abc;
}
/***************************/
a.H文件中
exturn void *efd (void);
/***************************/
b.c文件中
调用
if(efd  ==)
/****************************/

目前出错在函数

void *efd (void)
{
        return lcd_sta.abc;
}
这里
提示
Error[Pe120]: return value type ("void (*)(void)") does not match the function type ("void *") C:UsersadminstratorDesktopMSP430 progrom 5.5hart_parameter.c 362

不知道该如何解决
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
3条回答
aozima
1楼-- · 2020-01-01 21:47
方案1
  1. fun efd (void)
  2. {
  3.         return lcd_sta.abc;
  4. }
复制代码

方案2
  1. void *efd (void)
  2. {
  3.         return (void *)lcd_sta.abc;
  4. }
复制代码
河图洛书
2楼-- · 2020-01-01 23:30
aozima 发表于 2017-2-7 10:50
方案1

很感谢aozima朋友
通过你的第二种方法,增加一个(void*)问题解决了,可是不是很明白为什么加一个(void*),就不会提示错误是不是(void*)相当于强制类型转换符?
mqkycy
3楼-- · 2020-01-02 05:26
 精彩回答 2  元偷偷看……

一周热门 更多>