在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: