C语言中,if语句后面加return 的用法的疑问。

2020-01-21 21:34发布

有这么一段代码:
void xxx()
{
    if(rs_buf[0]=='$')
    {
        for(i=0;i<sizeof(GPS_GPRMC)-1;i++)
        {
            j=getuartdat();
            if(j<256)
            {
                rs_buf=(alt_u16)j;
                if(rs_buf!=GPS_GPRMC)
                return;
            }
        }
    }
}
当这句话成立: if(rs_buf!=GPS_GPRMC)
                return;

即return执行后,程序再怎样运行,是不是直接跳出了函数xxx,即return在这里的作用是结束函数的运行?
有点疑惑,请大侠指教!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
44条回答
little_Monkey
1楼-- · 2020-01-22 03:09
我觉得是跳出for
luo496724812
2楼-- · 2020-01-22 05:21
只要执行到return,就退出函数了,无论这个return在函数里的什么位置,只要执行,就退出
luo496724812
3楼-- · 2020-01-22 08:00
回复【1楼】little Monkey  
我觉得是跳出for
-----------------------------------------------------------------------

跳出for是break
number007cool
4楼-- · 2020-01-22 11:30
回复 【2楼】 luo496724812
-------------------------------
假如加入这个xxx函数是中断服务子函数呢,也一样跳出么?

回复 【3楼】 luo496724812
------------------------------------------------------------
假如代码如下:
void xxx()
{
    for(k=0;k<100;k++)
    {
        for(i=0;i<sizeof(GPS_GPRMC)-1;i++)
        {
            j=getuartdat();
            if(j<256)
            {
                rs_buf=(alt_u16)j;
                if(rs_buf!=GPS_GPRMC)
                break;
            }
        }
    }
}
当break执行后,程序会怎样执行?这个break是break的哪一个?
kinoko
5楼-- · 2020-01-22 16:41
 精彩回答 2  元偷偷看……
myqiang1990
6楼-- · 2020-01-22 19:25
回复【4楼】number007cool  
-----------------------------------------------------------------------
return结束整个函数吧。。。你这个break结束内层for循环。。。

一周热门 更多>