环形缓冲区.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
环形缓冲区

2、实例:环形缓冲区的实现 环形缓冲区是数据通信程序中使用最为广泛的数据结构之一,下面的代码,实现了一个环形缓冲区: /*ringbuf .c*/ #i ncludestdio. h ????#i ncludectype. h #define NMAX 8 int iput = 0; /*?环形缓冲区的当前放人位置?*/ int iget = 0; /*?缓冲区的当前取出位置?*/ int n = 0; /*?环形缓冲区中的元素总数量?*/ double buffer[NMAX]; /*?环形缓冲区的地址编号计算函数,,如果到达唤醒缓冲区的尾部,将绕回到头部。 环形缓冲区的有效地址编号为:0到(NMAX-1) */ int addring (int i) { ????????return (i+1) == NMAX ? 0 : i+1; } /*?从环形缓冲区中取一个元素?*/ double get{void} { cnt pos; if (n0){ ???????????Pos = iget; ???????????iget = addring(iget); ???????????n--; ???????????return buffer[pos]; } else { printf(“Buffer is empty\n”); return 0.0; } /*?向环形缓冲区中放人一个元素*/ void put(double z) { if (nNMAX){ ???????????buffer[iput]=z; ???????????iput = addring(iput); ???????????n++; } else printf(“Buffer is full\n”); } int main{void) { chat opera[5]; double z; do { printf(“Please input p|g|e?”); scanf(“%s”, opera); ???????????????switch(tolower(opera[0])){ ???????????????case ‘p’: /* put */ ??????????????????printf(“Please input a float number?”); ??????????????????scanf(“%lf”, z); ??????????????????put(z); ??????????????????break; case ‘g’: /* get */ ??????????????????z = get(); printf(“%8.2f?from Buffer\n”, z); break; case ‘e’: ??????????????????printf(“End\n”); ??????????????????break; default: ??????????????????printf(“%s - Operation command error! \n”, opera); }/* end switch */ }while(opera[0] != ’e’); return 0; }

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档