帮小弟 解释一下这个程序 各位大侠

2019-07-16 04:27发布

  • #include “key.h”
  • #define KeyBufSize 16 //定义按键缓冲队列字节数
  • unsigned char KeyBuf[ KeyBufSize ]; //定义一个无符号字符数组作为按键缓冲队列。该队列为先进
  • //先出,循环存取,下标从0到 KeyBufSize-1
  • unsigned char KeyBufWp=0; //作为数组下标变量,记录存入位置
  • unsigned char KeyBufRp=0; //作为数组下标变量,记录读出位置
  • //如果存入位置与读出位置相同,则表明队列中无按键数据
  • unsigned char keyHit( void )
  • { if( KeyBufWp == KeyBufRp ) return( 0 ); else return( 1 ); }
  • unsigned char keyGet( void )
  • { unsigned char retVal; //暂存读出键值
  • while( keyHit()==0 ); //等待按键,因为函数keyHit()的返回值为 0 表示无按键
  • retVal = KeyBuf[ KeyBufRp ]; //从数组中读出键值
  • if( ++KeyBufRp >= KeyBufSize ) KeyBufRp=0; //读位置加1,超出队列则循环回初始位置
  • return( retVal );
  • }
  • void keyPut( unsigned char ucKeyVal )
  • { KeyBuf[ KeyBufWp ] = ucKeyVal; //键值存入数组
  • if( ++KeyBufWp >= KeyBufSize ) KeyBufWp=0; //存入位置加1,超出队列则循环回初始位置

这个函数里
  • unsigned char KeyBufWp=0; //作为数组下标变量,记录存入位置
  • unsigned char KeyBufRp=0; //作为数组下标变量,记录读出位置
  • //如果存入位置与读出位置相同,则表明队列中无按键数据
    这个怎么解释啊  为 什么说“如果存入位置与读出位置相同,则表明队列中无按键数据
    ”小弟看不明白  各位 大侠帮忙解释一下!!!!


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
孤寞燕人
1楼-- · 2019-07-16 09:59
各位大侠 帮帮忙啊
lstcspring
2楼-- · 2019-07-16 15:28
 精彩回答 2  元偷偷看……
1173055768
3楼-- · 2019-07-16 19:36
支持
13631602924
4楼-- · 2019-07-16 19:59
落蕊封尘
5楼-- · 2019-07-17 00:24
支持

一周热门 更多>