编译时不报错,运行时语句直接给我跳过去,什么鬼?

2020-02-06 10:09发布

就是这几个语句,想不明白,很常规的啊

struct_missile_reent->para_troj_min_yaw = calc_yaw(incoming_buf);
struct_missile_reent->para_troj_min_pth = calc_pitch(incoming_buf);
struct_missile_reent->para_troj_min_rud = calc_inertia(incoming_buf);

是在一个switch case语句的一个
case中。后面是个break。运行到这儿直接给我break掉,很诡异。怎么搞的?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
12条回答
aammoo
1楼-- · 2020-02-07 07:37
JYX2015 发表于 2015-11-10 08:48
可我已经把优化给关到最低了啊

编译的时候直接把变量放在寄存器里运算了,算完了再放回内存里,所以跟踪不到。
changer15309
2楼-- · 2020-02-07 11:54
如果开了编译优化,即使代码没有被优化,在debug的时候也不一定按照执行顺序进行,会乱跳。建议直接查看switch值,断点打到对应的case
changer15309
3楼-- · 2020-02-07 14:57
JYX2015 发表于 2015-11-10 08:48
可我已经把优化给关到最低了啊

直接关闭优化
JYX2015
4楼-- · 2020-02-07 18:39
changer15309 发表于 2015-11-10 09:02
直接关闭优化

怎么关?
ywhbn
5楼-- · 2020-02-08 00:39
 精彩回答 2  元偷偷看……
usm4glx
6楼-- · 2020-02-08 04:40
这是什么桂东西啊

一周热门 更多>