• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 200, comments - 8, trackbacks - 0, articles - 0

            list_for_each()的定義:


            1. /**  
            2.  * list_for_each    -   iterate over a list  
            3.  * @pos:    the &struct list_head to use as a loop counter.  
            4.  * @head:   the head for your list.  
            5.  */  
            6. #define list_for_each(pos, head) \  
            7.     for (pos = (head)->next, prefetch(pos->next); pos != (head); \  
            8.         pos = pos->next, prefetch(pos->next))  

            list_for_each_safe()的定義:

            1. /**  
            2.  * list_for_each_safe   -   iterate over a list safe against removal of list entry  
            3.  * @pos:    the &struct list_head to use as a loop counter.  
            4.  * @n:      another &struct list_head to use as temporary storage  
            5.  * @head:   the head for your list.  
            6.  */  
            7. #define list_for_each_safe(pos, n, head) \  
            8.     for (pos = (head)->next, n = pos->next; pos != (head); \  
            9.         pos = n, n = pos->next)  

            由上面兩個(gè)對(duì)比來看,list_for_each_safe()函數(shù)比list_for_each()多了一個(gè)中間變量n

             

            當(dāng)在遍歷的過程中需要?jiǎng)h除結(jié)點(diǎn)時(shí),來看一下會(huì)出現(xiàn)什么情況:

            list_for_each():list_del(pos)將pos的前后指針指向undefined state,導(dǎo)致kernel panic,另如果list_del_init(pos)將pos前后指針指向自身,導(dǎo)致死循環(huán)。

            list_for_each_safe():首先將pos的后指針緩存到n,處理一個(gè)流程后再賦回pos,避免了這種情況發(fā)生。


            因此之遍歷鏈表不刪除結(jié)點(diǎn)時(shí),可以使用list_for_each(),而當(dāng)由刪除結(jié)點(diǎn)操作時(shí),則要使用list_for_each_safe()。

            其他帶safe的處理也是基于這個(gè)原因。

             

            亚洲精品国产综合久久一线| 久久久久国色AV免费观看| 久久亚洲中文字幕精品一区| 亚洲美日韩Av中文字幕无码久久久妻妇 | 久久99久国产麻精品66| 久久人人爽人人爽人人AV东京热| 久久久亚洲欧洲日产国码二区| 夜夜亚洲天天久久| 久久亚洲AV无码精品色午夜| 精品久久久久久无码人妻蜜桃| 色欲综合久久躁天天躁蜜桃 | 国产呻吟久久久久久久92| 久久精品亚洲日本波多野结衣| AV无码久久久久不卡蜜桃| 热99RE久久精品这里都是精品免费| 久久亚洲精品无码AV红樱桃| 精品久久久久久久久久中文字幕| 欧洲人妻丰满av无码久久不卡| 久久天天躁狠狠躁夜夜2020老熟妇 | 国产精品国色综合久久| 久久这里有精品| 亚洲Av无码国产情品久久| 国产午夜精品久久久久九九电影| 中文字幕精品久久久久人妻| 色成年激情久久综合| 久久99国产精一区二区三区| 精品国产VA久久久久久久冰| 久久午夜免费视频| 婷婷久久综合九色综合九七| 伊人久久综在合线亚洲2019| 丁香狠狠色婷婷久久综合| 久久国产精品一区二区| 亚洲va中文字幕无码久久| 国产精品99久久久精品无码| 久久久久无码精品国产| 久久久久久夜精品精品免费啦| 国色天香久久久久久久小说| 亚洲精品乱码久久久久久蜜桃| 人妻中文久久久久| 狠狠色丁香久久婷婷综合蜜芽五月| 久久久久久无码国产精品中文字幕 |