//
typedef unsigned char u8;
typedef unsigned int u32;
#define buffer_size (1024*500) //緩衝區的長度,可以修改
static u32 validlen;//已使用的資料長度
static u8* phead = null;//環形儲存區的首位址
static u8* ptail = null;//環形儲存區的結尾位址
static u8* pvalid = null;//已使用的緩衝區的首位址
static u8* pvalidtail = null;//已使用的緩衝區的尾位址
int head,tail;
/* * 初始化環形緩衝區
* 環形緩衝區這裡可以是malloc申請的記憶體,也可以是flash儲存介質
* */
//critical_section g_cs;
//handle hmutex = null;
void initringbuffer(void)
pvalid = pvalidtail = phead;
ptail = phead + buffer_size;
validlen = 0;
head=tail=0;
// initializecriticalsection(&g_cs);// 初始化臨界區
// hmutex = createmutex(null, false, null);// 建立互斥物件}/*
* function:從緩衝區內取出資料
* param :@buffer:接受讀取資料的buffer
* @len:將要讀取的資料的長度
* return :-1:沒有初始化
* >0:實際讀取的長度
* */
int readringbuff
環形緩衝區C語言實現
環形緩衝區的特性 1 先進新出 2 當緩衝區被使用完,且又有新的資料需要儲存時,丟掉歷史最久的資料,儲存最新資料 現實中的儲存介質都是線性的,因此我們需要做一下處理,才能在功能上實現環形緩衝區 演算法說明 1 phead和ptail分別是連續儲存介質的首位址和尾位址 2 ptail phead 的值...
環形緩衝區的C語言實現
include include include include include define buffsize 1024 1024 define min x,y x y x y pthread mutex t lock pthread mutex initializer struct cycle b...
C 語言中實現環形緩衝區
1.實現 include include include include include define buffsize 1024 1024 define min x,y x y x y pthread mutex t lock pthread mutex initializer struct cy...