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

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

[复制链接]
阿松松 发布时间:2015-1-12 17:48
在list.c中,把删除任意一个结点。- ^# o/ C3 ^* g# J' t
) Y* L( `! ?0 a4 b; H" Y( M3 Q0 j& a

/ o; J+ j1 x& p4 I4 t+ n, A
  1. unsigned portBASE_TYPE uxListRemove( xListItem * const pxItemToRemove ): w0 V( d+ b" z' R9 _/ y
  2. {
    $ Q' l) o& [% w3 K! h9 D
  3. xList * pxList;8 I, ^3 P) U7 Q) y

  4. 4 {* P( s5 U$ G' y
  5. /*你要删除这个结点,那你总不能直接删吧,怎么也得和你上下的哥们交接好工作吧,可不能拍屁股走人,
    ( r4 e- ]1 e6 V
  6. 要告诉你下面的那个哥们,我走了,以后你的你的上线就得是我现在的上线。*/+ t; J+ }) e1 y; o% ?( c6 C8 E
  7.         pxItemToRemove->pxNext->pxPrevious = pxItemToRemove->pxPrevious;+ W- q: Q# C. [$ g# F
  8. , x8 L; g$ {/ d9 q4 W
  9. /*要告诉你上面的那个哥们,我走了,以后你的你的下线就得是我现在的下线。*// I0 C' e! r! V& {' C( i
  10.         pxItemToRemove->pxPrevious->pxNext = pxItemToRemove->pxNext;4 @$ Z4 o8 b8 i' M2 u' i- Z+ M
  11. , W2 q# e) [; A$ _' t
  12.         /* 搞清楚要删除的结点现在在哪个链表中。*// q7 c! V! n9 k0 s) f0 }+ O" Y
  13.         pxList = ( xList * ) pxItemToRemove->pvContainer;8 @  Z1 Q, n. X- I1 V% H' G6 v6 q3 c
  14. % d% M" M5 v: s9 `" H
  15.         /* 如果当前的pxIndex指向要删除的结点的话,要找人的话,只好请他找我(pxPrevious)的上线了。 */' f2 Q3 o8 p4 t! \
  16.         if( pxList->pxIndex == pxItemToRemove )
    7 @1 h1 v/ l' R9 c5 r
  17.         {) z3 V+ T0 o2 V% R- X
  18.                 pxList->pxIndex = pxItemToRemove->pxPrevious;
    : b8 r3 q. Z2 U' n  [0 u
  19.         }! q: A( ?4 w/ G, X/ a/ O4 z  h% _
  20. /*意思是,哥不干了,我现在自由了,谁也管不着了,当然,之前所属的组织中的结点数量就少了一个。*/
    + E: Z! @9 k3 {3 K/ w4 l8 c
  21.         pxItemToRemove->pvContainer = NULL;; q4 S6 r- N9 D4 R  r7 G$ T$ ^
  22.         ( pxList->uxNumberOfItems )--;
    7 ^) u, S, n3 [) e; J. ~

  23. 7 f4 q3 Z1 i" O' ~# n; k
  24. /*告诉调用者此链表中还剩多少可用的结点。*/
      [  ^& v2 h9 Z* e& O
  25.         return pxList->uxNumberOfItems;! \* g, j8 K3 a4 i) h9 F
  26. }
复制代码
Enjoy,欢迎拍砖。+ r6 L" C* X7 `" s% _, S& J5 l7 |
( h2 g. |0 ~0 i( h) j
赞 收藏 评论0 发布时间:2015-1-12 17:48

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版