关于return

[复制链接]
 楼主| hlhfootbal 发表于 2008-5-11 09:44 | 显示全部楼层 |阅读模式
void sendnbyte(unsigned char *sla,unsigned char n,unsigned char *sbuf)
{          
    start();        
    sendbyte(sla);            
    checkack();            
        if(nackFlag == 1)
    { 
        nackFlag=0;
        return;/*return 语句返回到哪里去?*/             
    }
    while(n--)
    { 
        sendbyte(sbuf);
        checkack();    
        if (nackFlag == 1)
        {
            nackFlag=0;
            return;        
        }
        sbuf++;
    }
    //stop();             
}
请问以上函数中的return语句执行后,程序会运行在哪里?
谢谢!
HWM 发表于 2008-5-11 13:19 | 显示全部楼层

哪里来的回到哪里。

xlj1466 发表于 2008-5-11 14:45 | 显示全部楼层

单步调试一下吧

应该是返回到while(n--)里去了
 楼主| hlhfootbal 发表于 2008-5-11 18:42 | 显示全部楼层

不能仿真,所以就不能单步调试了

thw 发表于 2008-5-12 01:00 | 显示全部楼层

。。。

哪来的就回哪去。。。调用关系复杂的话
把函数定义为int sendnbyte,return的value不一样,看看寄存器的值或者栈就知道回哪去了。。。
mpuhome 发表于 2008-5-14 21:48 | 显示全部楼层

回到

回到调用sendnbyte的地方去
 楼主| hlhfootbal 发表于 2008-5-15 21:47 | 显示全部楼层

顶!

你是说回到主函数中去?是回到主函数执行那个调用语句的地方去,还是到主函数执行那个调用语句的下一语句去?
寒雨飞扬 发表于 2008-5-23 16:27 | 显示全部楼层

3楼要误导人了。

平常人 发表于 2008-5-23 22:10 | 显示全部楼层

回到调用sendnbyte语句的下一语句

3楼要误导人!没有这个return,才会继续执行下面的 while(n--)
 楼主| hlhfootbal 发表于 2008-5-24 21:16 | 显示全部楼层

谢谢平常人!

xb007 发表于 2008-5-31 22:42 | 显示全部楼层

返回到调用函数处,执行下一条指令!!

返回到调用函数处,执行下一条指令!!
afeifeia 发表于 2008-6-28 10:47 | 显示全部楼层

返回

退出sendnbyte函数,返回到调用这个函数的地方
您需要登录后才可以回帖 登录 | 注册

本版积分规则

133

主题

417

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部