你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

FreeRTOS源代码分析unsigned portBASE_TYPE uxListRemove( xListItem * cons...

[复制链接]
阿松松 发布时间:2015-1-12 17:48
在list.c中,把删除任意一个结点。


  1. unsigned portBASE_TYPE uxListRemove( xListItem * const pxItemToRemove )
  2. {
  3. xList * pxList;

  4. /*你要删除这个结点,那你总不能直接删吧,怎么也得和你上下的哥们交接好工作吧,可不能拍屁股走人,
  5. 要告诉你下面的那个哥们,我走了,以后你的你的上线就得是我现在的上线。*/
  6.         pxItemToRemove->pxNext->pxPrevious = pxItemToRemove->pxPrevious;

  7. /*要告诉你上面的那个哥们,我走了,以后你的你的下线就得是我现在的下线。*/
  8.         pxItemToRemove->pxPrevious->pxNext = pxItemToRemove->pxNext;

  9.         /* 搞清楚要删除的结点现在在哪个链表中。*/
  10.         pxList = ( xList * ) pxItemToRemove->pvContainer;

  11.         /* 如果当前的pxIndex指向要删除的结点的话,要找人的话,只好请他找我(pxPrevious)的上线了。 */
  12.         if( pxList->pxIndex == pxItemToRemove )
  13.         {
  14.                 pxList->pxIndex = pxItemToRemove->pxPrevious;
  15.         }
  16. /*意思是,哥不干了,我现在自由了,谁也管不着了,当然,之前所属的组织中的结点数量就少了一个。*/
  17.         pxItemToRemove->pvContainer = NULL;
  18.         ( pxList->uxNumberOfItems )--;

  19. /*告诉调用者此链表中还剩多少可用的结点。*/
  20.         return pxList->uxNumberOfItems;
  21. }
复制代码
Enjoy,欢迎拍砖。

收藏 评论0 发布时间:2015-1-12 17:48

举报

0个回答

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版