打印

关于return

[复制链接]
2017|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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 | 只看该作者

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

使用特权

评论回复
5
thw| | 2008-5-12 01:00 | 只看该作者

。。。

哪来的就回哪去。。。调用关系复杂的话
把函数定义为int sendnbyte,return的value不一样,看看寄存器的值或者栈就知道回哪去了。。。

使用特权

评论回复
6
mpuhome| | 2008-5-14 21:48 | 只看该作者

回到

回到调用sendnbyte的地方去

使用特权

评论回复
7
hlhfootbal|  楼主 | 2008-5-15 21:47 | 只看该作者

顶!

你是说回到主函数中去?是回到主函数执行那个调用语句的地方去,还是到主函数执行那个调用语句的下一语句去?

使用特权

评论回复
8
寒雨飞扬| | 2008-5-23 16:27 | 只看该作者

3楼要误导人了。

使用特权

评论回复
9
平常人| | 2008-5-23 22:10 | 只看该作者

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

3楼要误导人!没有这个return,才会继续执行下面的 while(n--)

使用特权

评论回复
10
hlhfootbal|  楼主 | 2008-5-24 21:16 | 只看该作者

谢谢平常人!

使用特权

评论回复
11
xb007| | 2008-5-31 22:42 | 只看该作者

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

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

使用特权

评论回复
12
afeifeia| | 2008-6-28 10:47 | 只看该作者

返回

退出sendnbyte函数,返回到调用这个函数的地方

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

133

主题

417

帖子

1

粉丝