在Linux内核源码中,经常要对链表进行操作,其中一个很重要的宏是list_for_each_entry:
意思大体如下:
假设只有两个结点,则第一个member代表head,
list_for_each_entry的作用就是循环遍历每一个pos中的member子项。
图1:
pos: pos:
___________ ____________
| | | |
| | | |
| ........... | | ................ |
| | | |
| | | |
| member: ___________> member |
| { { |
| *prev; | | *prev; |
| *next;--|---------- *next;-------------
| } | |
| |
| |
| |
|__________________|
宏list_for_each_entry:
意思大体如下:
假设只有两个结点,则第一个member代表head,
list_for_each_entry的作用就是循环遍历每一个pos中的member子项。
图1:
pos:
___________
|
|
|
|
|
|
|
|
|
|
|
宏list_for_each_entry: