使用c语言实现的fifo程序,C语言实现标准FIFO

C语言实现标准FIFO

说明:

本文在C语言中实现了标准FIFO,可以存储任意类型的数据。FIFO返回给应用模块的是一个int类型的索引值,本质是一个指针。通过这层封装,可以简化提供给应用模块的接口。

注意:此FIFO为满时不能写入的类型,如果需要的是满时自动覆蓋,请自行修改。

源码:

itcp_fifo.h:/**

* Copyright (c), 2015-2025

* @file itcp_fifo.h

* @brief fifo头文件

* @author jdh

* @verbatim

* Change Logs:

* Date Author Notes

* 2018-01-24 jdh 新建

* 2018-11-06 jdh 修改成通用格式

* @endverbatim

*/

#ifndef _ITCP_FIFO_H_

#define _ITCP_FIFO_H_

#include "itcp_def.h"

/**

* @brief 创建fifo

* @param item_sum:fifo中元素数.注意不是字节数

* @param item_size: 元素大小.单位: 字节

* @return fifo索引

*/

int itcp_fifo_create(int item_sum, int item_size);

/**

* @brief 删除fifo

* @param fifo_index: fifo索引

*/

void itcp_fifo_delete(int fifo_index);

/**

* @brief fifo检查是否可以写入

* @param fifo_index: fifo索引

* @retval false:不可以写入.true:可以写入

*/

bool itcp_fifo_writeable(int fifo_index);

/**

* @brief fifo写入

* @param fifo_index: fifo索引

* @param frame:写入元素指针

* @return false:失败.true:成功

*/

bool itcp_fifo_write(int fifo_index, void *data);

/**

* @brief fifo批量写入

* @param fifo_index: fifo索引

* @param data: 写入元素指针

* @param item_num:元素数目

* @return false:失败.true:成功

*/

bool itcp_fifo_write_batch(int fifo_index, void *data, int item_num);

/**

* @brief fifo检查是否可以读取

* @param fifo_index: fifo索引

* @return false:不可以读取.true:可以读取

*/

bool itcp_fifo_readable(int fifo_index);

/**

* @brief fifo读取

* @param fifo_index: fifo索引

* @param data: 读取的数据

* @return false: 失败.true: 成功

*/

bool itcp_fifo_read(int fifo_index, void *data);

/**

* @brief fifo批量读取

* @param fifo_index: fifo索引

* @param data: 读取的数据

* &#

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值