完美体育·(中国)手机网页版 > 技术文章 > ARM软件工具 > Keil MDK > KEIL MDK提示:warning: #61-D: integer operation result is out of
KEIL MDK提示:warning: #61-D: integer operation result is out of
问题类别:ARM软件工具 > Keil MDK | 浏览次数:12575 |
发布日期:2012/4/23 17:14:55 | 文章来源:完美体育·(中国)手机网页版科技 |
回复日期:2020/12/20 9:56:42 |
环境说明
KEIL MDK中国版3.05 及以上分析描述
rBDICNT0 = (3<<30) | (1<<26) | (3<<22) | (1<<20) | 216; Code\initialize.c(73): warning: #61-D: integer operation result is out of range. rBDICNT0 是寄存器变量,无符号型的,只要变量值到达31位就出这样的警告。问题解答
问题分析:MDK-ARM中国版所使用的编译器是严格检查赋值是否会产生溢出的及符号改变的,从而上述警告是正常的。
问题解决:
可以修改为:
rBDICNT0 = (3U<<30)|....; 或者rBDICNT0 = ((u32)3<<30)|....; 就可以避免警告了。