收藏官网首页
查看: 8755|回复: 1

IAR编译警告:integer operation result is out of range

51

主题

99

帖子

827

积分

高级会员

Rank: 4

积分
827
跳转到指定楼层
楼主
发表于 2016-7-29 20:38:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
注册成为机智云开发者,手机加虚拟设备快速开发
IAR编译的时候报了一个warning:integer operation result is out of range(图1),即:整型运算的结果不在运算范围内。


看一下这个函数的原型:WDT_IF_Init(图2),第二个入参的类型为:unsigned int,也就是无符号整形,那么代码中的: 80000000*40,俩个常数相乘做入参提示结果不在运算范围内,原因是什么?



原因:IAR默认常数是int型,两个有符号数相乘得到是有符号数,有符号数的最左边位是符号位。正确的入参方式是常数后加u:80000000u * 40u,再跑一下运算结果(图3)




图1


图2


图3

0

主题

27

帖子

224

积分

中级会员

Rank: 3Rank: 3

积分
224
沙发
发表于 2016-12-6 15:27:18 来自手机 | 只看该作者
兄弟 cc3200  可以用了吗  有官方的SDK吗
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

加入Q群 返回顶部

版权与免责声明 © 2006-2024 Gizwits IoT Technology Co., Ltd. ( 粤ICP备11090211号 )

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