下载此文档

【精品文献】循环缓冲区.doc


文档分类:IT计算机 | 页数:约8页 举报非法文档有奖
1/8
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/8 下载此文档
文档列表 文档介绍
【精品文献】循环缓冲区#include<>#include<>#include<>#defineBUF_MAX10typedefunsignedlongRMuint32;typedefstructbufer{RMuint32*read_ptr;RMuint32*write_ptr;RMuint32*buf_addr;//循环区的首地址RMuint32buf_size;//循环区的大小}Buffer;Buffercyc_buf;/********************************************************************函数说明:该函数按用户的指定要求的大小创建一个循环缓冲区同时将缓冲区里清空输入参数:buf_size用户指定的缓冲区大小返回值:成功:该缓冲区的首地址失败:NULL********************************************************************/RMuint32*Create_buff(longbuf_size){RMuint32*buf_addr=(RMuint32*)malloc(buf_size*sizeof(RMuint32));if(!buf_addr){printf("ewbuf!\n");returnNULL;}memset(buf_addr,0,buf_size);returnbuf_addr;}/********************************************************************函数说明:该函数从缓冲区里读一个数据出来,存入data中输入参数:buf_add,循环缓冲区结构;data用来存取数据返回值:成功:1失败:0缓冲区已空********************************************************************/intread_from_buf(Buffer*buf_add,RMuint32*data){if(buf_add->read_ptr==buf_add->write_ptr){printf("bufferisempty!Error!\n");return0;}else{*data=*(buf_add->read_ptr);*(buf_add->read_ptr)=0;if((buf_add->read_ptr+1)==buf_add->buf_addr+buf_add->buf_size)buf_add->read_ptr=buf_add->buf_addr;elsebuf_add->read_ptr++;}return1;}/********************************************************************函数说明:该函数向缓冲区里写入一个数据,由data传入输入参数:buf_add,循环缓冲区结构;data用来写入的数据返回值:成功:1失败:0缓冲区已满********************************************************************/intwrite_

【精品文献】循环缓冲区 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数8
  • 收藏数0 收藏
  • 顶次数0
  • 上传人iris028
  • 文件大小22 KB
  • 时间2019-11-23
最近更新