微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 按键扫描函数最后的那个return(0)是什么意思?返回到哪了?

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

时间:10-02 整理:3721RD 点击:
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);
}

就是return(0);
具体还得看整个程序吧。估计这里是返回一个空的,

貌似明白了,应该是空的,谢了

什么意思啊?都被定义成void了
uchar Keyboard_Scan(void)
返回空有意思的么 啊,

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

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top