mcu_ring_queue.h

来自「Altera公司开发板1c20 CF卡通用例程(初始化、读、写、测试等)-Alt」· C头文件 代码 · 共 36 行

H
36
字号
/**********************************************************************************
                                    循环队列
      说明:
            本循环队列是专为嵌入式设计,主要用在嵌入式系统上。在PC机上,不推荐使用。
      
      2004-12-13 9:46 在PC平台下测试通过。测试使用的是Borland bcc32 5.5版本的编译器。    
**********************************************************************************/
#ifndef MCU_RING_QUEUE_H
#define MCU_RING_QUEUE_H


typedef struct ring_queue_tag
{
      INT8U 	front;         	// 队头
      INT8U		rear;			// 队尾

      // 队列中最多可以容纳的元素个数
      // 注意:队列中实际可以最多可以容纳的元素个数比maxSize少1
      //       这是因为在循环队列的实现中,需要空出一个元素的位置
      // 例如:maxSize的值为10,则队列中实际可以最多可以容纳的元素个数为9
      INT8U 	maxSize;

      INT8U 	*elements;      	// 指向队列的存储空间中的首元素
} RING_QUEUE;


extern void    Queue_Init( RING_QUEUE *const queue, INT8U init_maxSize, INT8U *init_element );
extern void    Queue_EnQueue( RING_QUEUE *const queue, INT8U item );
extern BOOLEAN Queue_DeQueue( RING_QUEUE *const queue, INT8U *const pItem );
extern BOOLEAN Queue_GetFront( RING_QUEUE *const queue, INT8U *const pItem );
extern void    Queue_Clear( RING_QUEUE *const queue );
extern BOOLEAN Queue_IsEmpty( RING_QUEUE *const queue );
extern BOOLEAN Queue_IsFull( RING_QUEUE *const queue );
extern INT16U  Queue_GetElementCount( RING_QUEUE *const queue );

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?