[求助] IAR怎么老出这种幺蛾子呢

eeacc   2015-12-29 13:23 楼主
u16 i = 0,j = 923;
i = j & 1;
结果 i = 0;
这是个神马情况?

回复评论 (8)

无无 本帖最后由 zqjqq88 于 2015-12-29 13:48 编辑
construction complete!
点赞  2015-12-29 13:45
看了一下,是1,不知道楼主到底是怎么弄的~~~
我在想 我知道什么
点赞  2015-12-29 14:08

u16 i = 1,j = 923;
if(i ==( j & 1))
{

}
else
{

}
这样的居然执行else里的语句
点赞  2015-12-29 15:03
优化了吧
点赞  2015-12-29 15:13
优化等级一变有有若干问题,唉,麻烦
点赞  2015-12-29 15:25
楼顶的情况试试如下:
u16 i = 0;
u16 j = 923;
i = j & 1;
这样可以吗?
点赞  2016-1-5 16:29
之前遇到过这类情况吗。如果把if(i ==( j & 1))改成if(j & 1),会是什么结果呢。楼主试一下看看。
点赞  2016-1-6 21:30
变量被编译器优化了吧,可以定义成volatile类型变量防止被优化
点赞  2016-1-25 17:14
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复