打印
[创客交流]

【Navota开发板V1.02】06: demo例程的GPIO警告消除

[复制链接]
1336|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 740071911 于 2016-12-8 16:53 编辑

好像也没看到有人优化官方demo关于gpio,枚举(1<<31)溢出警告的问题,
即 warning:  #61-D: integer operation result is out of range。
我之前的demo也没有消除;也没人回答,是没人看到,还是看了不屑回复,不得而知。

可能对于大神来说,小意思。但对我这种菜鸟却搞不定,今天特搜索了一下,并没有相同的情况,不过
确实很好解决。希望能帮到像笔者这样的朋友吧。








1.PNG (66.81 KB )

1.PNG

相关帖子

沙发
kation122| | 2016-12-10 08:24 | 只看该作者
本帖最后由 kation122 于 2016-12-10 08:26 编辑

感谢分享,看到有警告确实不舒服。
网上查到的资料如下:
“此警告是由于溢出所致,宏定义默认常量是有符号型,当左移31位时,常数就变成负数,编译器就会给出如上的警告信息解决办法是强制类型转换成无符号类型:
#define UART1_EN              ((U32)1<<31)这样,警告信息就消除了。”

使用特权

评论回复
板凳
740071911|  楼主 | 2016-12-12 08:36 | 只看该作者
kation122 发表于 2016-12-10 08:24
感谢分享,看到有警告确实不舒服。
网上查到的资料如下:
“此警告是由于溢出所致,宏定义默认常量是有符号 ...

就是看到网上这样的解决办法,才有了我上面的办法。
因为上面的并不是宏定义,而是枚举,默认是int型的,所以需要2次强制类型转换

使用特权

评论回复
地板
rouse520| | 2018-4-9 11:08 | 只看该作者
感谢楼主分享,警告确实看着不舒服

使用特权

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

本版积分规则

个人签名:想低声说句不在乎,可会飞的心总是在高处!

47

主题

865

帖子

5

粉丝