C语⾔中,if语句后⾯加return的⽤法的疑问有这么⼀段代码:
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在这⾥的作⽤是结束函数的运⾏?
c语言return的用法和搭配有点疑惑,请⼤侠指教!
有这么⼀段代码:
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在这⾥的作⽤是结束函数的运⾏?
有点疑惑,请⼤侠指教!
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在这⾥的作⽤是结束函数的运⾏?
有点疑惑,请⼤侠指教!
解:return 的本意就是函数退出,不管是⼀般函数还是中断函数,翻译成汇编也就是 ret 或 reti 指令,到底应该执⾏ret还是reti那是编译器事。
break只跳出离她最近的那层循环