#define QUEUE_RXBUF_SIZE 128 //定义队列大小
typedef struct {
uint8_t Head;//队列头
uint8_t Tail;//队列尾
uint8_t Dat[QUEUE_RXBUF_SIZE];
}Queue;
Queue Que = {0,0,0};
//进队列
void QueuePush(uint8_t data)
{
uint8_t pos = (Que.Head+1)%QUEUE_RXBUF_SIZE; //头部循环 头向右增长
if(pos != Que.Tail)//非满
{
Que.Dat[Que.Head] = data;
Que.Head = pos;
}
}
出队列
void QueuePop(uint8_t* datap)
{
if(Que.Tail != Que.Head)//非空
{
*datap = Que.Dat[Que.Tail];
Que.Tail = (Que.Tail+1)%QUEUE_RXBUF_SIZE; //尾部循环 尾向右增长
}
}
【算法------队列】------ 一个简单的循环队列示例说明
最新推荐文章于 2022-05-04 17:08:23 发布