怎么实现一个固定大小 m 的缓冲区,循环采集数据固定长度 n 存储到 m 中,m>n ,每次缓冲区装满之后就输出,要刚好装满,n 的数据不能丢失,n 和 m 不是倍数关系
1
GeruzoniAnsasu 2022-10-19 18:20:56 +08:00 1
考虑读写方法的实现
考虑缓冲区干啥,它本质上只是个内存区域 |
2
tyzandhr 2022-10-19 20:59:14 +08:00 1
和 STL 差不多。
每次写入的时候就检测 buffer 是否会溢出,要是溢出就扩容;你这里就是输出并清空。 |
3
wudicgi 2022-10-19 21:09:57 +08:00 1
circular buffer / ring buffer ?
“要刚好装满” 指的是什么? |
4
liuguangxuan 2022-10-19 23:13:19 +08:00 1
|
5
dangyuluo 2022-10-20 00:18:45 +08:00 1
什么是刚好装满,比如 buffer 里还有 3 个字节剩余空间,要插入 4 个字符,怎么处理
|
6
DeWjjj 2022-10-20 02:41:22 +08:00 1
a = 函数外建固定大小为 m 的堆类。
a = 调用函数 函数(传 a 引用) => 枚举类(状态条件,数据){ 接受数据; 大小判断; a 内数据+读取 大于范围则拼接 足够大小的输出; 返回状态,及多余数据; } |
7
smdbh 2022-10-20 12:31:15 +08:00
难道不是每写一个字节判断是否到 m 尾,到了就输出 m ,然后从 m 头继续写?
|
8
zentraedi OP 已经搞好了
|