📄 queque.c
字号:
/****************************************
Name: Queue.c
Descript:基本队列操作
Author:LMS
Date:2002/12/19
*****************************************/
#include"pub.h"
// Public Function
// Init Queque
uchar Queue_Init(struct Sys_RD_Queue_Struct *inque,int length)
{
inque->Len=length;
inque->Wr=0;
inque->Rp=0;
inque->Sta = EMPTY;
inque->elements=malloc(length);
if(inque->elements!=NULL)
return(OK);
return(ERROR);
}
// Queque Put
uchar Queue_Put(uchar indata,struct Sys_RD_Queue_Struct *inque)
{
if(inque->Sta==FULL)
return(ERROR) ;
inque->elements[inque->Wr++]=indata;
if(inque->Wr==inque->Len)
inque->Wr=0;
if(inque->Wr==inque->Rp)
inque->Sta=FULL;
else
inque->Sta=NORMAL;
return(OK);
}
// Queque Get
uchar Queue_Get(struct Sys_RD_Queue_Struct *inque, uchar *out_addr)
{
if(inque->Sta==EMPTY)
return(ERROR) ;
*out_addr=inque->elements[inque->Rp++];
if(inque->Rp==inque->Len)
inque->Rp=0;
if(inque->Rp==inque->Wr)
inque->Sta=EMPTY;
else
inque->Sta=NORMAL;
return(OK);
}
// Queque Status Get
uchar Queque_Status(struct Sys_RD_Queue_Struct *inque)
{
return(inque->Sta);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -