queue.h

来自「这是一个基于ARM7的2134的在内存中开辟循环队列的的程序!」· C头文件 代码 · 共 58 行

H
58
字号
/*
*******************************************************************************
*                    Copyright (c) 2005, Comba Telecom System
*                             All Rights Reserved
*
* Purpose           : queue header file
* File Name         : queue.h

* Chip type         : LPC22XX(ARM7TDMI)
* IDE               : ADS1.2

* Revision history  :
    01a,2005/08/16,Lu jiangmin  -- Creation(written),re. zlgmcu Chen mingji

* Description       :
    
  
*******************************************************************************
*/

#ifndef NOT_OK
#define NOT_OK              0xff                        /* 参数错误                                     */
#endif

#define QUEUE_FULL          8                           /* 队列满                                       */
#define QUEUE_EMPTY         4                           /* 无数据                                       */
#define QUEUE_OK            1                           /* 操作成功                                     */

#define Q_WRITE_MODE        1                           /* 操作成功                                     */
#define Q_WRITE_FRONT_MODE  2                           /* 操作成功                                     */

#ifndef QUEUE_DATA_TYPE
#define QUEUE_DATA_TYPE     INT8U
#endif

typedef struct {
    QUEUE_DATA_TYPE     *Out;                   /* 指向数据输出位置         */
    QUEUE_DATA_TYPE     *In;                    /* 指向数据输入位置         */
    QUEUE_DATA_TYPE     *End;                   /* 指向Buf的结束位置        */
    INT16U              NData;                  /* 队列中数据个数           */
    INT16U              MaxData;                /* 队列中允许存储的数据个数 */
    
    INT8U               (* ReadEmpty)();        /* 读空处理函数             */
    INT8U               (* WriteFull)();        /* 写满处理函数             */
    QUEUE_DATA_TYPE     Buf[1];                 /* 存储数据的空间           */
} DataQueue;


#ifndef IN_QUEUE
extern INT8U QueueCreate(void *Buf, INT32U SizeOfBuf, INT8U (* ReadEmpty)(), INT8U (* WriteFull)());        
extern INT8U QueueRead(QUEUE_DATA_TYPE *Ret, void *Buf);
extern INT8U QueueWrite(void *Buf, QUEUE_DATA_TYPE Data);
extern INT8U QueueWriteFront(void *Buf, QUEUE_DATA_TYPE Data);
extern INT16U QueueNData(void *Buf);
extern INT16U QueueSize(void *Buf);
extern void QueueFlush(void *Buf);
#endif

⌨️ 快捷键说明

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