我是刚刚接触单片机的小白!

这是我自己按照别人思路写得一个程序,我想问一下大佬,在定义扫描按键函数的时候,如果函数“SM()”中,非0xFF, 不成立程序还会有返回值吗,或者继续往下运行吗? #include<reg51.h> #include<intrins.h> #define LED P0 #define KEY P1 void max(int p) { int x,y; for(x=p;x>0;x--) for(y=99;y>0;y--); } //延时 int SM() { int i,zhi; if(KEY!=0xFF) { max(1); if(KEY!=0xFF) { zhi=KEY; i=0; while((i<50)&&(zhi!=0xFF)) { i=i+1; max(1); } } } return zhi; } //扫描按键 void main() { int led,key; while(1) { key=SM(); switch(key) { case(0xFE):led=~0x0C; break; case(0xFD):led=~0xDB; break; case(0xFB):led=~0xF2; break; case(0xF7):led=~0x67; break; case(0xEF):led=~0xB6; break; case(0xDF):led=~0xBF; break; case(0xBF):led=~0xE0; break; case(0x7F):led=~0xFF; break; } LED=led; } }
...全文
79 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Simple-Soft 2020-05-24
  • 打赏
  • 举报
回复
引用 2 楼 ༺࿈军仔*江河湖海࿈༻的回复:
[quote=引用 1 楼 Simple-Soft的回复:]应该会返回,i大于50就返回了
我的意思是如果函数中的if 语句不成立那么会不会继续执行,或者会不会有返回值?[/quote] if语句控制的是if语句块,如果if不成立,只有if控制的语句块不执行,不影响别的代码逻辑
  • 打赏
  • 举报
回复
引用 1 楼 Simple-Soft的回复:
应该会返回,i大于50就返回了
我的意思是如果函数中的if 语句不成立那么会不会继续执行,或者会不会有返回值?
  • 打赏
  • 举报
回复
在你这个程序会有返回值,返回变量zhi,由于你们有对变量zhi进行初始化,此时变量zhi是一个随机值,即返回的是一个随机值
Simple-Soft 2020-05-24
  • 打赏
  • 举报
回复
应该会返回,i大于50就返回了

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧