这段代码返回哪里去了?
void transmit_Mbusdata(U8 len, U8 *payload, U8 ciField)
{
if(uMBusNetRole == MBUS_NET_ROLE_CONCENTRATOR)
{
if(uTemp>0)
{
if(uCount >0) //number of router
{
//若干代码1
return; //返回到主调函数吗?
}
}
}
else
{
frame.a_field[5] = MA_FIELD[7];
}
//若干代码2
}
如上的代码结构,当这个函数被调用以后,”若干代码1“被执行后,这个return是返回到主调函数吗?
为什么执行了”若干代码1“之后又执行了”若干代码2“?这个return是怎么执行的。
求指教
[解决办法]
理论上说,“若干代码1”被执行完之后,这个函数应该就结束了,因为return语句可以把一个函数直接结束调。这时候,应该会退回到调用这个函数的地方,如果是在主函数里面调用的话,应该是退回到主函数。
[解决办法]
若干代码1里面有递归调transmit_Mbusdata吧
[解决办法]