相关疑难解决方法(0)

如何在C中实现循环缓冲区?

我需要一个固定大小(在创建它时可在运行时选择,而不是编译时)循环缓冲区,它可以容纳任何类型的对象,并且它需要非常高的性能.我不认为会有资源争用问题,因为虽然它是在多任务嵌入式环境中,但它是一个合作的,所以任务本身可以管理它.

我最初的想法是在缓冲区中存储一个简单的结构,它包含类型(简单的枚举/定义)和一个指向有效负载的void指针,但我希望它尽可能快,所以我愿意接受绕过的建议堆.

实际上我很高兴绕过任何标准库的原始速度 - 从我所看到的代码来看,它没有针对CPU进行大量优化:看起来他们只是为了类似的东西编译C代码,strcpy()没有手工编码组装.

任何代码或想法将不胜感激.所需的操作是:

  • 创建具有特定大小的缓冲区.
  • 放在尾巴上.
  • 从头上得到.
  • 归还计数.
  • 删除缓冲区.

c circular-buffer data-structures

66
推荐指数
5
解决办法
20万
查看次数

标签 统计

c ×1

circular-buffer ×1

data-structures ×1