2 Star 2 Fork 2

Actor_V / MF_Modbus

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
mf_linklist.c 1.50 KB
一键复制 编辑 原始数据 按行查看 历史
myfuture 提交于 2022-06-01 16:55 . 添加事件未完成
#include "mf_linklist.h"
mf_link* link_malloc(uint8_t *data);
/*
*描述:创建一个链表
*返回:mf_link*:创建出的链表地址,NULL:创建失败
*/
mf_link* link_create(void)
{
mf_link* link = (mf_link*)malloc(sizeof(mf_link));
if(link == NULL) return NULL;
link->next = link;
link->len = 0;
link->data = 0;
return link;
}
//获取链表的元素数
uint8_t link_get_length(mf_link* link)
{
uint8_t count = 0;
if(link == NULL) return 0;
for(mf_link* p = link->next; p != link; p = p->next)
{
count ++;
}
return count;
}
/*
*描述:向链表头部添加数据
*参数:*link:要添加到的链表,*data:要添加的首地址指针,*len:纯数据类型使用,不用时传NULL
*返回:0:添加失败 1:添加成功
*/
uint8_t link_head_add(mf_link* link, uint8_t* data, uint8_t len)
{
mf_link* link_new = link_malloc(data);
if(link_new == NULL)
{
return 0;
}
link_new->next = link->next;
link->next = link_new;
return 1;
}
/*
*描述:向链表尾部添加数据
*参数:*link:要添加到的链表,*data:要添加的首地址指针,*len:纯数据类型使用,不用时传0
*返回:0:添加失败 1:添加成功
*/
uint8_t link_tail_add(mf_link* link, uint8_t* data, uint8_t len)
{
mf_link* link_new = link_malloc(data);
if(link_new == NULL) return 0;
mf_link* p;
for(p = link; p->next != link; p = p->next);
link_new->next = p->next;
p->next = link_new;
link_new->len = len;
return 1;
}
//申请节点
mf_link* link_malloc(uint8_t* data)
{
mf_link* link = (mf_link*)malloc(sizeof(mf_link));
if(link == NULL)
{
return NULL;
}
link->data = data;
link->len = 0;
link->next = NULL;
return link;
}
C
1
https://gitee.com/Actor_V/mf_modbus.git
git@gitee.com:Actor_V/mf_modbus.git
Actor_V
mf_modbus
MF_Modbus
V1.0

搜索帮助