#define LIST_HEAD_INIT(name) { &(name), &(name) }   

#define LIST_HEAD(name) \

struct list_head name = LIST_HEAD_INIT(name)


这样创建双向循环链表太厉害了。

其中,结构体list_head的定义在​​点击打开链接​​中有提到,代码如下:

struct list_head {
  struct list_head *next, *prev;
};