FreeRTOS 中链表的实现

1、链表节点的数据结构

struct xLIST_ITEM
{
   
	TickType_t xItemValue;             /* 辅助值,用于帮助节点做顺序排列 */			
	struct xLIST_ITEM *  pxNext;       /*指向链表下一个节点 */		
	struct xLIST_ITEM *  pxPrevious;   /* 指向链表前一个节点*/	
	void * pvOwner;					   /* 指向拥有该节点的内核对象,通常是 TCB */
	void *  pvContainer;		       /*指向该节点所在的链表 */
};
typedef struct xLIST_ITEM ListItem_t;  /* 节点数据类型重定义 */

节点示意图如下图所示:
在这里插入图片描述
2、链表节点的初始化
链表节点ListItem_t总共有5个成员,但是初始化的时候只需要将pvContainer初始化未空即可,表示节点还没有插入到任何链表。具体实现代码如下:

void vListInitialiseItem( ListItem_t * const pxItem )
{
   
	/*初始化该节点所在的链表为空,表示节点还没有插入任何链表 */
	pxItem->pvContainer = NULL;
}

3、定义链表根节点数据结构
根节点示意图如下所示:在这里插入图片描述

typedef struct xLIST
{
   
	UBaseType_t uxNumberOfItems;    /* 链表节点计数器,用于表示该链表下有多少个节点 */
	ListItem_t *  pxIndex;			
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值