FreeRTOS源码阅读笔记2--list.c

list.c中主要完成列表数据结构的操作,有列表和列表项的初始化、列表的插入和移除。

2.1列表初始化vListInitialise()

2.1.1函数原型

void vListInitialise( List_t * const pxList )

  • pxList:列表指针,指向要初始化的列表。

2.1.2函数框架

简单来说,列表的初始化就是链表根节点的初始化,如图所示:

2.2列表项初始化vListInitialiseItem()

2.2.1函数原型

void vListInitialiseItem( ListItem_t * const pxItem )

  • pxItem:列表项指针。

2.2.2函数框架

使列表项pxItem->pxContainer=NULL,表示列表项没有所属的列表。

2.3列表项插入列表末尾vListInsertEnd()

2.3.1函数原型

void vListInsertEnd( List_t * const pxList, ListItem_t * const pxNewListItem )

  • pxList:列表指针;
  • pxNewListItem:要插入的新列表项指针。

2.3.2函数框架

2.4列表项插入列表vListInsert()

2.4.1函数原型

void vListInsert( List_t * const pxList, ListItem_t * const pxNewListItem )

  • pxList:列表指针;
  • pxNewListItem:要插入的新列表项指针。

2.4.2函数框架

vListInsert()与vListInsertEnd()不同之处在于,可以根据列表项中的value值大小,先和根节点(value值最大)开始比,再由value值小到大找,找到比新列表项value值大的第一个列表项,然后把新列表项插入到它的前面。

2.5列表项移除列表uxListRemove()

2.5.1函数原型

UBaseType_t uxListRemove( ListItem_t * const pxItemToRemove )

  • pxItemToRemove:列表项指针,指向要移除的列表项;
  • 返回值:被移除列表项所属的列表中列表项的数量。

2.5.2函数框架

相关推荐
摇滚侠25 分钟前
2025最新 SpringCloud 教程,教程简介,笔记01
笔记·spring cloud
RickyWasYoung2 小时前
【笔记】智能汽车、电动汽车政策文件
笔记·汽车
love530love5 小时前
【保姆级教程】Windows + Podman 从零部署 Duix-Avatar 数字人项目
人工智能·windows·笔记·python·数字人·podman·duix-avatar
草莓熊Lotso6 小时前
《算法闯关指南:动态规划算法--斐波拉契数列模型》--01.第N个泰波拉契数,02.三步问题
开发语言·c++·经验分享·笔记·其他·算法·动态规划
FFF团团员90913 小时前
树莓派学习笔记3:LED和Button
笔记·学习
碧海潮生_CC14 小时前
【CUDA笔记】04 CUDA 归约, 原子操作,Warp 交换
笔记·cuda
摇滚侠14 小时前
2025最新 SpringCloud 教程,从单体到集群架构,笔记02
笔记·spring cloud·架构
风123456789~15 小时前
【OceanBase专栏】OB背景知识
数据库·笔记·oceanbase
智者知已应修善业17 小时前
【51单片机普通延时奇偶灯切换】2023-4-4
c语言·经验分享·笔记·嵌入式硬件·51单片机
wdfk_prog17 小时前
[Linux]学习笔记系列 -- [block]bio
linux·笔记·学习