第二重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; } |
这里应该是优化了。第一个判断是不等于0,也就是后面应该不会进入判断。你改一下这个判断条件,试试。
我改成if(pd ==0 )也是一样的情况
是优化的原因
是优化的我问题,把优化关掉就好了