当前位置: > Linux故障 >

linux 的list.h 错误?

时间:2014-12-07 02:33来源:linux.it.net.cn 作者:IT
link.h里的这几行代码老感觉哪里不对,大神帮忙看一下额
static inline void __list_add(struct list_head *new,
struct list_head *prev,
struct list_head *next)
{
next->prev = new;
new->next = next;
new->prev = prev;
prev->next = new;
}
static inline void list_add(struct list_head *new, struct list_head *head)
{
__list_add(new, head, head->next);
}
static inline void list_add_tail(struct list_head *new, struct list_head *head)
{
__list_add(new, head->prev, head);
}
内联函数为了不占用额外的资源不就在调用的时候展开,
根本没有重新分配空间
上面一个自然木有问题,下面一个不就是替换成这样了么,

head->prev = new;
new->next = head;
new->prev = head->prev;
head->prev->next = new;


第三行这一行head的prev不是已经断了接到new了么,不成了自己连自己了?? (责任编辑:IT)
------分隔线----------------------------