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函数框架

相关推荐
刘婉晴4 小时前
【信息安全工程师备考笔记】第三章 密码学基本理论
笔记·安全·密码学
晓数6 小时前
【硬核干货】JetBrains AI Assistant 干货笔记
人工智能·笔记·jetbrains·ai assistant
我的golang之路果然有问题6 小时前
速成GO访问sql,个人笔记
经验分享·笔记·后端·sql·golang·go·database
lwewan6 小时前
26考研——存储系统(3)
c语言·笔记·考研
搞机小能手7 小时前
六个能够白嫖学习资料的网站
笔记·学习·分类
nongcunqq7 小时前
爬虫练习 js 逆向
笔记·爬虫
汐汐咯8 小时前
终端运行java出现???
笔记
无敌小茶9 小时前
Linux学习笔记之环境变量
linux·笔记
帅云毅10 小时前
Web3.0的认知补充(去中心化)
笔记·学习·web3·去中心化·区块链
豆豆10 小时前
day32 学习笔记
图像处理·笔记·opencv·学习·计算机视觉