定义循环缓存

上传人:精****档 文档编号:43820415 上传时间:2018-06-07 格式:DOC 页数:3 大小:30.50KB
返回 下载 相关 举报
定义循环缓存_第1页
第1页 / 共3页
定义循环缓存_第2页
第2页 / 共3页
定义循环缓存_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《定义循环缓存》由会员分享,可在线阅读,更多相关《定义循环缓存(3页珍藏版)》请在金锄头文库上搜索。

1、 定义循环缓存:#define#define MAX_BUFF_LENMAX_BUFF_LEN 10241024 / 定义缓存大小typedeftypedef structstruct / 定义数据结构 uintuint data;data;DATA_BUFF_T;DATA_BUFF_T;typedeftypedef structstruct / 定义缓存结构 uintuint readPos;readPos;uintuint writePos;writePos;DATA_BUFF_TDATA_BUFF_T DATAMAX_BUFF_LEN;DATAMAX_BUFF_LEN;DATAS_BUF

2、F_T;DATAS_BUFF_T;staticstatic DATAS_BUFF_TDATAS_BUFF_T Buff0;Buff0; / 定义缓存(2)初始化循环缓存:Buff0.readPosBuff0.readPos = = 0;0;Buff0.writePosBuff0.writePos = = 0;0;(3)判断缓存中是否有数据:BOOLBOOL HaveData_Buff(void)HaveData_Buff(void) ifif (Buff0.readPos(Buff0.readPos !=!= Buff0.write.Pos)Buff0.write.Pos)returnretu

3、rn 1;1;elseelsereturnreturn 0;0; (4)向缓存中写数据:intint WriteData(uintWriteData(uint data)data) uintuint nextPos;nextPos;nextPosnextPos = = (Buff0.writePos(Buff0.writePos + + 1)1) % % MAX_BUFF_LEN;MAX_BUFF_LEN;ifif (nectPos(nectPos !=!= Buff0.readPos)Buff0.readPos) / 判断缓存是否满,需要写入数据 的位置等于读数据的位置时 Buff0.DAT

4、AwritePos.dataBuff0.DATAwritePos.data = = data;data;Buff0.writePosBuff0.writePos = = nextPos;nextPos;returnreturn 0;0; /成功 elseelsereturnreturn -1;-1; (5)从缓存中读数据:uintuint ReadData(void)ReadData(void) uintuint dataTemp;dataTemp;ifif (HaveData_Buff()(HaveData_Buff() = 0)0) printf(“bufferprintf(“buffer isis emptyn“);emptyn“);returnreturn -1;-1; dataTempdataTemp = = Buff0.DATAreadPos.data;Buff0.DATAreadPos.data;Buff0.readPosBuff0.readPos = = (Buff0.readPos(Buff0.readPos + + 1)1) % % MAX_BUFF_LEN;MAX_BUFF_LEN;returnreturn dataTemp;dataTemp;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号