按键扫描函数最后的那个return(0)是什么意思?返回到哪了?

2019-07-15 23:08发布

uchar Keyboard_Scan(void)
{
uchar scancode,tmpcode;
P2=0xf0;
while(P2==0xf0);     //等待有键按下
Delay_1ms(20);              //延时10ms去抖动
if(P2!=0xf0)
   {  scancode=0xfe;  //逐行扫描
      while(scancode!=0xef)         //还没有扫描完4行
        {  
                   P2=scancode;
           if((P2&0xf0)!=0xf0)  //本列有键按下
             {
                           tmpcode=(P2&0xf0)|(scancode&0x0f);
                           while((P2&0xf0)!=0xf0); //等待键释放
                           return(tmpcode);
               }         
            else scancode=(scancode<<1)|0x01;
         }
    }
        return(0);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
冰葑世纪
1楼-- · 2019-07-16 01:41
就是return(0);
具体还得看整个程序吧。估计这里是返回一个空的,
许kaisky
2楼-- · 2019-07-16 02:57
冰葑世纪 发表于 2013-8-10 10:38
就是return(0);
具体还得看整个程序吧。估计这里是返回一个空的,

貌似明白了,应该是空的,谢了
飘飘,,,飘飘
3楼-- · 2019-07-16 07:28
许kaisky 发表于 2013-8-10 10:42
貌似明白了,应该是空的,谢了

什么意思啊?都被定义成void了
uchar Keyboard_Scan(void)
返回空有意思的么 啊,
Aidaohuakai
4楼-- · 2019-07-16 08:41
当按键有按下时返回return(tmpcode);并退出整个函数,return后面的就不再执行了
当按键没有按下时,return(tmpcode)没有被执行到,于是函数运行到结尾return(0)
返回0,如果没有return(0),编译时会有警告或出错,因为这个函数必须有返回值,不论按键有没有按下。
Aidaohuakai
5楼-- · 2019-07-16 14:19
冰葑世纪 发表于 2013-8-10 10:38
就是return(0);
具体还得看整个程序吧。估计这里是返回一个空的,

当按键有按下时返回return(tmpcode);并退出整个函数,return后面的就不再执行了
当按键没有按下时,return(tmpcode)没有被执行到,于是函数运行到结尾return(0)
返回0,如果没有return(0),编译时会有警告或出错,因为这个函数必须有返回值,不论按键有没有按下。

一周热门 更多>