通过不完全数组实现的队列完成循环FIFO的基本操作:
1。判空,判满
2.增加元素,删除元素
//-------------FIFO仿真------
#define FIFO_Data_Type int
//使用不完全填满数组的技巧区分队列空和满
typedef struct
{
FIFO_Data_Type*buf;
uint8_t max_len;
uint8_t front; //头指针,若队列不空,指向队列的头元素
uint8_t rear; //尾指针,若队列不空,指向队列尾元素的下一个位置
}FIFO_TypeDef;
void Init_Fifo(FIFO_TypeDef*Fifo,FIFO_Data_Type*buf, uint8_t max_len)
{
Fifo->buf = buf;
Fifo->max_len = max_len;
Fifo->front = 1;
Fifo->rear