日常Debug之:if(false)能运行?智子攻陷了我的MCU!!!
环境:AT32F403AVGT7、IAR8.30、J-LINK现象:定时器中断里遇到 -1 <= 0 返回false的情况。如图:
出现了if(-1 > 0){}为True的情况。
是不是被智子监控了呢?
经过分析:发现
文件1.c:
int32_t s32G_HiTick=0;
文件2.c:
extern uint32_t s32G_HiTick;
文件2里的s32G_HiTick还是被认为是unsigned 类型,所以-1在unsigned的情况下是不可能为复数的。
破案了,世界和平依旧。
————————————————
版权声明:本文为CSDN博主「casdfxx」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/c_1969/article/details/132479456
这种问题一般非常不容易进行排查啊 我们可以小心的让数据不超过范围吗 其实本质上就是数据发生了溢出现象是吗 这种数据类型不匹配的问题 我们一般从哪里开始进行排查呢 为什么无符号的数据就不存在这个bug了呢 coshi 发表于 2023-10-10 16:45
为什么无符号的数据就不存在这个bug了呢
当然了因为无符号不存在负数啊
页:
[1]