我正在sys/queue.h
从 FreeBSD 学习,我有一个问题:
在sys/queue.h
中,LIST_ENTRY
定义如下:
#define LIST_ENTRY(type) \
struct { \
struct type *le_next; /* next element */ \
struct type **le_prev; /* address of previous next element */ \
}
为什么它保持前一个下一个元素(struct type **le_prev
)的地址而不是简单的前一个元素的地址struct type *le_prev
?