前几天看zephyr实时操作系统的文档时,发现它实现了环形缓冲区数据结构,提供了API接口供用户使用,作为一个开源的软件,好处就是可以看一看它的源码,学习(剽窃)以下,对比以下自己写的,我看的zephyr源码是我好久之前下载的,zephyr版本是1.8.0,和现在版本环形缓冲区实现大同小异,我略做了修改,并在windows下运行了一下。
ring_buffer.h
#ifndef __RING_BUFFER_H__
ring_buffer.c
/* ring_buffer.c: Simple ring buffer API */
测试程序
main.c
#include
存储示意
运行结果
坑:vscode编辑文件,然后命令行cl编译,把文件保存成UTF-8 with BOM,要不然编译可能造成千奇百怪的错误及中文乱码。