queue.c
来自「自己编写的飞利浦LPC2200的串口驱动,可以支持在OS下和非OS下,主要通过在」· C语言 代码 · 共 65 行
C
65 行
#include "Queue.h"
QUEUE_RET QueueInit(QUEUE *queue, QUEUE_TYPE *buf, unsigned int length)
{
if(NULL != queue && NULL != buf && 0 != length)
{
Queue_EnterCritical();
queue->buf = buf;
queue->front = queue->rear = 0;
queue->length = 0;
queue->max = length;
queue->initFlag = 1;
Queue_ExitCritical();
return QRET_OK;
}
queue->initFlag = 0;
return QRET_ERROR;
}
QUEUE_RET QueueIn(QUEUE *queue, QUEUE_TYPE data)
{
if(NULL != queue && 1 == queue->initFlag)
{
Queue_EnterCritical();
if(queue->length == queue->max)
{
Queue_ExitCritical();
return QRET_FULL;
}
queue->buf[queue->rear] = data;
queue->rear = (queue->rear + 1)%queue->max;
queue->length++;
Queue_ExitCritical();
return QRET_OK;
}
return QRET_ERROR;
}
QUEUE_RET QueueOut(QUEUE *queue, QUEUE_TYPE *data)
{
if(NULL != queue && 1 == queue->initFlag)
{
Queue_EnterCritical();
if(queue->length == 0)
{
Queue_ExitCritical();
return QRET_EMPTY;
}
*data = queue->buf[queue->front];
queue->front = (queue->front + 1)%queue->max;
queue->length--;
Queue_ExitCritical();
return QRET_OK;
}
return QRET_ERROR;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?