FIFO队列文档
先入先出环形缓冲区(First In First Out, FIFO)是一种循环缓冲区结构。它利用一个定长数组来循环存储数据,通过头指针和尾指针来表示队头和队尾,实现先入先出的缓冲机制。与普通先入先出队列相比,先入先出环形缓冲区通过循环利用数组空间来优化容量限制,避免了队列因为空或满而出现的异常情况。当尾指针追上头指针时,表示队列已满,新入队元素会覆盖掉之前入队但未出队的元素。当头指针超过尾指针时,表示队列为空,会出现读取无效数据的风险。
先入先出环形缓冲区空间利用率较高,时间复杂度为O(1)。它通过数组和两个指针的设计巧妙实现了先入先出的数据结构,解决了普通队列的弊端。
初始化FIFO缓存
void fifo_init(fifo_t fifo, void *pool, size_t pool_size);
参数 | 描述 |
---|---|
fifo | FIFO句柄 |
pool | 内存池 |
pool_size | 内存池大小 |
重置FIFO缓存
void fifo_reset(fifo_t fifo);
参数 | 描述 |
---|---|
fifo | FIFO句柄 |
获取FIFO缓存的数据大小
size_t fifo_get_data_size(fifo_t fifo);
参数 | 描述 |
---|---|
fifo | FIFO句柄 |
返回 | |
size | 缓存的数据大小 |
从FIFO缓存读取数据
size_t fifo_read(fifo_t fifo, void *buffer, size_t size);
参数 | 描述 |
---|---|
fifo | FIFO句柄 |
buffer | 要从FIFO缓存读取的数据缓冲区 |
size | 读取大小 |
返回 | |
size | 实际读取的数据大小 |
向FIFO缓存写入数据
size_t fifo_write(fifo_t fifo, const void *buffer, size_t size);
参数 | 描述 |
---|---|
fifo | FIFO句柄 |
buffer | 要写入FIFO缓存的数据缓冲区 |
size | 写入大小 |
返回 | |
size | 实际写入的数据大小 |
强制向FIFO缓存写入数据
size_t fifo_write_force(fifo_t fifo, const void *buffer, size_t size);
参数 | 描述 |
---|---|
fifo | FIFO句柄 |
buffer | 要写入FIFO缓存的数据缓冲区 |
size | 写入大小 |
返回 | |
size | 实际写入的数据大小 |
———-
下载代码(路径:mr-library/ package / fifo)
———-
许可协议
遵循 Apache License 2.0 开源许可协议,可免费应用于商业产品,无需公开私有代码。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
文章目录 笔记_2 图像尺寸变换 resize 图像缩放 (重置图像大小) flip 图像翻转 hconcat 横向连接 vconcat 纵向连接 图像方式变换 warpAffine 仿射变换函数:矩阵M(2*3) getRotationMatrix2D 获取…