原创 未预料的编译器优化

2015-11-21 16:06 755 5 5 分类: MCU/ 嵌入式
昨天调试程序时遇到的问题。先是这样写,希望将io_status 的低三位分别保存到a0/a1/a2,
a0 = (io_status << 7) >> 7;
a1 = (io_status << 6) >> 7;
a2 = (io_status << 5) >> 7;
实际测试后发现全部被优化成:
a0  =  a0;
a1  >> 1;
a2 >> 2;
这显然不是期望的结果,这种问题有点隐蔽。
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条