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

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条回答
JYX2015
1楼-- · 2020-02-06 12:00
 精彩回答 2  元偷偷看……
aammoo
2楼-- · 2020-02-06 13:13
本帖最后由 aammoo 于 2015-11-9 19:29 编辑

直接跳过去的一般是被编译器优化掉了

btw:怎么没有roll
ywhbn
3楼-- · 2020-02-06 18:59
调试的是release版?
diyeyuye
4楼-- · 2020-02-06 23:09
应该是被编译器优化了
JYX2015
5楼-- · 2020-02-07 02:43
diyeyuye 发表于 2015-11-10 08:40
应该是被编译器优化了

这怎么优化?这优化也太不智能了吧!

而且我都是怕这个,已经把优化关到最低了!

怎么防止这种事情? do while (0)?
JYX2015
6楼-- · 2020-02-07 06:09
 精彩回答 2  元偷偷看……

一周热门 更多>