编辑代码

#include <stdio.h>

#define BUF_SIZE 20

/*BUF_SIZE就是一个宏大小一般定义为128*/
static int Buf[BUF_SIZE]={0}; //缓冲区
static int W=0; //写指针
static int R=0; //读指针

/*写数据*/
void Buff_Write(int data)
{
	if((W+1)%BUF_SIZE!=R) //队列未满
	{
		Buf[W]=data;
		W=(W+1)%BUF_SIZE;
	}
}

/*读数据*/
int Buff_Read(void)
{
	int data=0;
	
	if(R!=W) //队列非空
	{
		data=Buf[R];
		R=(R+1)%BUF_SIZE;
	}
	return data;
}

/*环形缓冲区清0*/
void Buff_Clear(void)
{
	W=0;
	R=0;
}

/*环形缓冲区初始化*/
void Buff_Init(void)
{
	Buff_Clear(); 
}

int main () {
    int data[]= {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
    Buff_Init();
    //JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。 
    for (int i = 0; i < 5; i ++)
            Buff_Write(data[i]);

    for (int i = 0; i < 10; i ++)
            printf("Read:%d,%d\n", i, Buff_Read());
    
    return 0;
}