LoopQueue.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /********************************************************************
  2. File Name : LoopQueue.h
  3. Description : 循环队列
  4. *********************************************************************/
  5. #ifndef __LoopQueue_H
  6. #define __LoopQueue_H
  7. #ifdef __cplusplus
  8. extern "C" {
  9. #endif
  10. /*-begin---------------------------------------------------------------*/
  11. /**********************************
  12. 元素为unsigned char类型的队列
  13. **********************************/
  14. typedef struct UCQueue
  15. {
  16. unsigned char *buf;//缓冲 环形
  17. unsigned short size;//buf长度
  18. unsigned short in;//入指针位置
  19. unsigned short out;//出指针位置
  20. }UCQueue;
  21. /**********************************
  22. 元素为unsigned short类型的队列
  23. **********************************/
  24. typedef struct USQueue
  25. {
  26. unsigned short *buf;//缓冲 环形
  27. unsigned short size;//buf长度
  28. unsigned short in;//入指针位置
  29. unsigned short out;//出指针位置
  30. }USQueue;
  31. void UCQueueInit(UCQueue *queue,unsigned char *pBuf, unsigned short BufLen);//队列初始化
  32. int UCQueueOut(UCQueue *queue);//出队列 返回-1标识队列已空,返回0~255为出队列元素值
  33. int UCQueueIn(UCQueue *queue,unsigned char data);//入队列,返回-1标识队列已满,返回0入成功
  34. void USQueueInit(USQueue *queue,unsigned short *pBuf, unsigned short BufLen);//队列初始化
  35. int USQueueOut(USQueue *queue);//出队列 返回-1标识队列已空,返回0~65535为出队列元素值
  36. int USQueueIn(USQueue *queue,unsigned short data);//入队列,返回-1标识队列已满,返回0入成功
  37. /*-end---------------------------------------------------------------*/
  38. #ifdef __cplusplus
  39. }
  40. #endif
  41. #endif /*__LoopQueue_H*/
  42. /******END OF FILE****/