队列的操作方式以及队列结构体
Posted qingyunboke
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了队列的操作方式以及队列结构体相关的知识,希望对你有一定的参考价值。
#define SER_BUF_SIZE (128) //队列长度
#define SER_BUF_MASK (SER_BUF_SIZE-1ul) //用于队列掉头
#define SER_BUF_RESET(serBuf) (serBuf.rdIdx = serBuf.wrIdx = 0) //初始化队列
#define SER_BUF_WR(serBuf, dataIn) (serBuf.data[SER_BUF_MASK & serBuf.wrIdx++] = (dataIn)) //往队列写数据
#define SER_BUF_RD(serBuf) (serBuf.data[SER_BUF_MASK & serBuf.rdIdx++]) //从队列读数据
#define SER_BUF_EMPTY(serBuf) (serBuf.rdIdx == serBuf.wrIdx) //判断队列为空
#define SER_BUF_FULL(serBuf) (serBuf.rdIdx == serBuf.wrIdx+1) //判断队列为满
#define SER_BUF_COUNT(serBuf) (SER_BUF_MASK & (serBuf.wrIdx - serBuf.rdIdx)) //计数队列里的数据个数
typedef struct __SER_BUF_T {
unsigned char data[SER_BUF_SIZE];
unsigned int wrIdx;
unsigned int rdIdx;
} SER_BUF_T; //队列结构体
以上是关于队列的操作方式以及队列结构体的主要内容,如果未能解决你的问题,请参考以下文章