当前位置: 首页 > article >正文

环形缓冲区

1.定义一个数组:
char buf[8];

2.定义一个读位置为0,定义一个写位置为0。
int r=0;
int w=0;

3.写数据:
buf[w++]=val;
if(w==8) w=0;//表示写满了,重头写。

或者:
buf[w]=va;
w=w+1;
if(w==8) w=0;//表示写满了,重头写。

4.读数据
val=buf[r++];
if(r==8) r=0;//表示读满了,重头读。

或者:
val=buf[r];
r=r+1;
if(r==8) r=0;//表示读满了,重头读。

5.读环形缓冲区:判断环形缓冲区是否空的情况
if(r==w)
        空

6.写环形缓冲区:判断环形缓冲区是否满了
if(r==w+1)
        满


http://www.kler.cn/news/10134.html

相关文章:

  • 14 个快速简洁的单行 JavaScript 代码解决方案
  • 报名截至在即 | “泰迪杯”挑战赛最后一场赛前指导直播!
  • java 泛型 万字详解(通俗易懂)
  • 【Linux系统文件管理(cat,awk指令)和网络IP配置,广播地址,修改子网掩码以及ping网关地址】
  • nova7换红米k60
  • NodeRED学习(五)http websoket
  • 【WebRTC技术专题】更进一步,核心组件RTP/RTCP数据传输协议 (3)
  • 理解 与 计算 物联网产品的电池使用寿命
  • Golang每日一练(leetDay0033) 二叉树专题(2)
  • c#多线程
  • 人工智障对话日记1:为狗写诗
  • 面试官在线改简历 | 只有6秒!程序员简历这样写才能抓住科技公司大佬的眼球
  • pdf转换成word怎么转换?这个方法一学就会!
  • C语言文件操作复习回顾(1)
  • 基于STM32的倒车雷达系统设计
  • JAVA解析XML时的内存消耗问题
  • IronOCR for .NET crack,IronOCR的独特功能
  • CMake入门教程【核心篇】8.0构建目标
  • 2023-03-18青少年软件编程(C语言)等级考试试卷(一级)解析
  • 是时候告别这些 Python 库了
  • 你真的会用background属性?
  • 【51单片机Task】:led十六进制控制led灯详解、按键控制流水灯、跑马灯等任务
  • x210官方uboot配置编译
  • DNS服务器配置
  • 机器学习和深度学习在气象中的应用(台风预报只能订正、风速预报订正、LSTM 方法预测 ENSO)
  • 基于Spring boot和Vue3的博客平台:系统通知、评论回复通知、专栏更新通知、用户角色与权限管理模块
  • 数据技术嘉年华星光璀璨,云和恩墨全栈数据技术能力闪耀会场
  • Vue实现自动化平台(五)--用例编辑页面
  • ​InnoDB引擎之flush脏页​
  • 大数据4 - 分布式计算