OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 1967|回复: 4

求大佬赐教为什么宏定义会出现类型不兼容?

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2023-8-2
在线时间
1 小时
发表于 2023-8-2 17:45:23 | 显示全部楼层 |阅读模式
我用下面这条宏定义的时候编译报错说类型不兼容“operand types are incompaticle("void" and  "GPIO_PinState"),但是我的参数类型是一样的,希望各位大神指教指教

#define ReadKey0(X) do{ HAL_GPIO_ReadPin(GPIOE,X)==0 ? HAL_GPIO_TogglePin(GPIOB,GPIO_PIN_5):HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_5);}while(0)


屏幕截图 2023-08-02 173646.png
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

213

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
5607
金钱
5607
注册时间
2016-12-19
在线时间
724 小时
发表于 2023-8-8 06:00:40 | 显示全部楼层
HAL_GPIO_ReadPin(GPIOE,X)==0 ? 加个括号试试
回复 支持 反对

使用道具 举报

70

主题

6698

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
12692
金钱
12692
注册时间
2012-11-26
在线时间
3711 小时
发表于 2023-8-8 10:26:46 | 显示全部楼层
类型都不一样   肯定会报啊     
回复 支持 反对

使用道具 举报

0

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
114
金钱
114
注册时间
2020-1-9
在线时间
39 小时
发表于 2023-8-9 09:03:34 | 显示全部楼层
本帖最后由 lelouchly 于 2023-8-9 09:06 编辑

是你后面的两个表达式返回类型不一样,三目运算相当于最后要return表达式结果或者都不返回结果,第一个是不返回, 第二个是返回GPIO_PinState类型才出错的。
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
10
金钱
10
注册时间
2023-8-2
在线时间
1 小时
 楼主| 发表于 2023-8-15 20:22:14 | 显示全部楼层
lelouchly 发表于 2023-8-9 09:03
是你后面的两个表达式返回类型不一样,三目运算相当于最后要return表达式结果或者都不返回结果,第一个是不 ...

谢谢谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 01:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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