没有合适的资源?快使用搜索试试~ 我知道了~
007-FreeRTOS202212-将节点从链表移出(删除)
需积分: 0 1 下载量 109 浏览量
2023-11-14
00:03:25
上传
评论
收藏 251KB PDF 举报
温馨提示
试读
2页
007-FreeRTOS202212-将节点从链表移出(删除)
资源推荐
资源详情
资源评论
FreeRTOS202212‐ 将节点从链表移出(删除)
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐移出前‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐移出后‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
/*‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐*/
UBaseType_t uxListRemove ( ListItem_t * const pxItemToRemove )
{
/*Thelistitemknowswhichlistitisin.Obtainthelistfromthelist*/
/*链表项知道它在哪个链表中。获取节点所在链表*/
List_t * const pxList =( List_t *) pxItemToRemove ‐> pvContainer ;
/*调整链表的节点索引指针*/
pxItemToRemove ‐> pxNext ‐> pxPrevious = pxItemToRemove ‐> pxPrevious ;
pxItemToRemove ‐> pxPrevious ‐> pxNext = pxItemToRemove ‐> pxNext ;
/*Onlyusedduringdecisioncoveragetesting.*/
/*仅在决策覆盖率测试期间使用*/
mtCOVERAGE_TEST_DELAY ();
/*Makesuretheindexisleftpointingtoavaliditem.*/
/*确保索引指向有效项*/
if ( pxList ‐> pxIndex == pxItemToRemove )
{
pxList ‐> pxIndex = pxItemToRemove ‐> pxPrevious ;
}
else
{
mtCOVERAGE_TEST_MARKER ();
}
/*初始化该节点所在的链表为空,表示节点还没有插入任何链表*/
pxItemToRemove ‐> pvContainer = NULL ;
/*链表节点计数器‐‐*/
( pxList ‐> uxNumberOfItems )‐‐;
/*返回链表中剩余节点的个数*/
return pxList ‐> uxNumberOfItems ;
}
/*‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐*/
uxNumberOfItems=3
*pxIndex
ListItem_t
链表节点索引指针
UBaseType_t
链表节点计数器32bit
节点排序值
*pxNext
*pxPrevious
structxLIST_ITEM
structxLIST_ITEM
xMINI_LIST_ITEM(MiniListItem_t)
xItemValue=0xffffffffUL
uint32_t/uint16_t(TickType_t)
xListEnd
xLIST(List_t)
链表头结点结构体
指向链表下一个节点
指向链表前一个节点
xItemValue=1
*pxNext
*pxPrevious
*pvOwner
*pvContainer
内核对象
链表对象
xLIST(List_t)
void
structxLIST_ITEM
structxLIST_ITEM
uint32_t/uint16_t(TickType_t)
节点排序值
xLIST_ITEM(ListItem_t)
指向链表下一个节点
指向链表前一个节点
链表节点结构体
xItemValue=3
*pxNext
*pxPrevious
*pvOwner
*pvContainer
内核对象
链表对象
xLIST(List_t)
void
structxLIST_ITEM
structxLIST_ITEM
uint32_t/uint16_t(TickType_t)
节点排序值
xLIST_ITEM(ListItem_t)
指向链表下一个节点
指向链表前一个节点
链表节点结构体
xItemValue=2
*pxNext
*pxPrevious
*pvOwner
*pvContainer
内核对象
链表对象
xLIST(List_t)
void
structxLIST_ITEM
structxLIST_ITEM
uint32_t/uint16_t(TickType_t)
节点排序值
xLIST_ITEM(ListItem_t)
指向链表下一个节点
指向链表前一个节点
链表节点结构体
*pxItemToRemove
uxNumberOfItems=2
*pxIndex
ListItem_t
链表节点索引指针
UBaseType_t
链表节点计数器32bit
节点排序值
*pxNext
*pxPrevious
structxLIST_ITEM
structxLIST_ITEM
xMINI_LIST_ITEM(MiniListItem_t)
xItemValue=0xffffffffUL
uint32_t/uint16_t(TickType_t)
xListEnd
xLIST(List_t)
链表头结点结构体
指向链表下一个节点
指向链表前一个节点
xItemValue=1
*pxNext
*pxPrevious
*pvOwner
*pvContainer
内核对象
链表对象
xLIST(List_t)
void
structxLIST_ITEM
structxLIST_ITEM
uint32_t/uint16_t(TickType_t)
节点排序值
xLIST_ITEM(ListItem_t)
指向链表下一个节点
指向链表前一个节点
链表节点结构体
xItemValue=3
*pxNext
*pxPrevious
*pvOwner
*pvContainer
内核对象
链表对象
xLIST(List_t)
void
structxLIST_ITEM
structxLIST_ITEM
uint32_t/uint16_t(TickType_t)
节点排序值
xLIST_ITEM(ListItem_t)
指向链表下一个节点
指向链表前一个节点
链表节点结构体
xItemValue=2
*pxNext
*pxPrevious
*pvOwner
*pvContainer
内核对象
链表对象
xLIST(List_t)
void
structxLIST_ITEM
structxLIST_ITEM
uint32_t/uint16_t(TickType_t)
节点排序值
xLIST_ITEM(ListItem_t)
指向链表下一个节点
指向链表前一个节点
链表节点结构体
*pxItemToRemove
*pxList
NULL
资源评论
weixin_43420126
- 粉丝: 1420
- 资源: 49
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功