This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

跳出for死循环



怎样跳出for(;;)死循环,比如:

for(;;)
{/*查询方式实现发送功能*/
if((SciaTx_Ready() == 1) && (Send_Flag == 1)) //发送准备已经就绪而且有数据需要发送
{
SciaRegs.SCITXBUF = Sci_VarRx[i]; //发送数据
Send_Flag = 0; //清标志位
i++;
if(i == 100)
{
i = 0;
}
}

/*查询方式实现接收功能*/
if(SciaRx_Ready() == 1) //接收数据准备已经就绪
{
Sci_VarRx[i] = SciaRegs.SCIRXBUF.all; //接收数据

Send_Flag = 1; //标志位置位,有数据等待发送
}

}

  • 这样改对不对?

    for(;;)
    {/*查询方式实现发送功能*/
    if((SciaTx_Ready() == 1) && (Send_Flag == 1)) //发送准备已经就绪而且有数据需要发送
    {
    SciaRegs.SCITXBUF = Sci_VarRx[i]; //发送数据
    Send_Flag = 0; //清标志位
    i++;
    if(i == 100)
    {
    i = 0;
    }
    }

    /*查询方式实现接收功能*/
    if(SciaRx_Ready() == 1) //接收数据准备已经就绪
    {
    Sci_VarRx[i] = SciaRegs.SCIRXBUF.all; //接收数据

    Send_Flag = 1; //标志位置位,有数据等待发送
    }
    if(Sci_VarRx[i]==1)

    break;
    }