第二重if语句内无法设置断点

2019-07-14 17:28发布

第二重if内无法设置断点,而且单步调试也不能进入第二个if内,但是全速运行现象正确,我使用的是IAR,求解
uint32_t time_Auto_Decrement(uint32_t * delay)
{
        uint32_t temp = 0;
        (*delay) = (*delay);
        uint32_t pd = (*delay);
       // uint32_t * pd = delay;
        if(pd != 0)
        {
                pd  --;
                if(pd == 0)
                {
                        temp = 1;
                        pd = 0;
                }
                else
                {
                        temp = 0;
                }

        }
        (*delay) = pd;
        return temp;
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
dingyang598
1楼-- · 2019-07-14 22:59
TOPCB 发表于 2018-9-24 13:51
if(pd != 0)
这里应该是优化了。第一个判断是不等于0,也就是后面应该不会进入判断。你改一下这个判断条件,试试。

我改成if(pd ==0 )也是一样的情况
亲爱的娜娜
2楼-- · 2019-07-15 03:51
 精彩回答 2  元偷偷看……
懒默浅默
3楼-- · 2019-07-15 04:52
赚金币啊
懒默浅默
4楼-- · 2019-07-15 05:32
赚金币啊啊啊啊
dingyang598
5楼-- · 2019-07-15 06:36
亲爱的娜娜 发表于 2018-9-24 14:25
关掉iar的优化呢,是不是优化掉了

是优化的原因
dingyang598
6楼-- · 2019-07-15 10:59
TOPCB 发表于 2018-9-24 13:51
if(pd != 0)
这里应该是优化了。第一个判断是不等于0,也就是后面应该不会进入判断。你改一下这个判断条件,试试。

是优化的我问题,把优化关掉就好了

一周热门 更多>