问题记载——keil中写for循环嵌套

还是上次的工程,LED灯闪烁。我今天回想一下感觉上次调试的时候还是有点问题,LED0 1和0的翻转时间很奇怪。

所以今天又打开看了看,单步调试,发现for循环嵌套只执行前一个循环,后一个循环根本不执行。

//不行
void Delay(unsigned int t)
{
    unsigned int i,j;
    for(i=0;i<t;i++){
        for(j=0;j<t;j++){}
    }
}

//不行
void Delay(unsigned int t)
{
    unsigned int i,j;
    for(i=0;i<t;i++){
        for(j=0;j<t;j++);
    }
}

//不行
void Delay(unsigned int t)
{
    unsigned int i,j;
    for(i=0;i<t;i++)
        for(j=0;j<t;j++);
}

后面把后一个for循环的括号放到下一行就ok了。

void Delay(unsigned int t)
{
    unsigned int i,j;
    for(i=0;i<t;i++){
        for(j=0;j<t;j++)
           {}
    }
}

看到这样的解决方式内心真是ORZ。后面给大神跑了一下,我这些不行的代码在他那里都是Ok的。再次猜想编译器问题 = =。

原文地址:https://www.cnblogs.com/cuglkb/p/6268622.html