博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言4个以上条件用if函数,if条件判断语句,谁能帮我分析一下?
阅读量:7069 次
发布时间:2019-06-28

本文共 852 字,大约阅读时间需要 2 分钟。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

测试平台是一个stm32f103zet6的ARM芯片,

我这里只是把它当作单片机来用,下面的程序是平台提供的,可以正常使用,有几个地方不能理解!

//mode为0是不支持连续按

//mode为1是支持连续按

//返回0表示无按键按下

//返回值在1~4内,则对应四个按键a,b,c,d

u8 key_a(u8 mode)

{

static u8 key_up=1;//按键按下标志

if(mode) key_up=1;//支持连按

if(key_up&&(a==0||b==0||c==0||d==1))

{

delay_ms(10);//消抖

key_up=0;

if(a==0) return=1;//a键按下

else if(b==0) return=2;//b键按下

rese if(c==0) return=3;//c键按下

rese if(d==1) return=4;//d键按下

if(key_up&&(a==1||b==1||c==1||d==0))

keu_up=1;//无按键按下

}

return 0;//无按键按下返回0

}

这是一个完整的按键判断程序,带返回值带一个参数!

当key_a(1);时支持连按(也就是按住按键不松手数值会一直往上加)

按键a,b,c是低电平触发,d按键是高电平触发!

这里有几个问题无法理解,

第一条语句static u8 key_up=1;中的static有什么用? 后面的u8. 是申明一个8位的无符号数据,同时初始值为1,

接着if(mode) key_up=1; 这里mode是1还是0好像没有什么用,因为key_up在上一条语句已经赋值为1了,

到了按键判断语句

if(key_up&&(a==0||b==0||c==0||d==1))

这里两个括号是不是先判断第二个括号里面的条件,然后再跟key_up判断如果为真就执行if里面的语句,

我不能理解的是怎么通过mode来判断支不支持连续按!

转载地址:http://sxqll.baihongyu.com/

你可能感兴趣的文章
小结下dom节点操作方法
查看>>
转载 radio值获取
查看>>
细说CSS的transform
查看>>
探寻关系数据库和ORM的最佳替代者(转载)
查看>>
浏览器键盘,鼠标事件拦截。(屏蔽退格,绑定回车,屏蔽鼠标右键)
查看>>
svn 常用命令总结
查看>>
行迁移、行链接
查看>>
8数码问题(2)
查看>>
1001. A+B Format (20)
查看>>
html5: 新特性(一)
查看>>
屏幕尺寸,分辨率,像素,PPI之间到底什么关系?
查看>>
Java输入输出流练习
查看>>
Redis中的批量删除数据库中的Key
查看>>
Git
查看>>
Docker 安装部署
查看>>
一种增加图像自然饱和度的方法
查看>>
Python基础之range()
查看>>
布尔类型
查看>>
MusicPlayer
查看>>
eclipes安装ADT错误处理
查看>>