Red de conocimiento informático - Aprendizaje de programación - Hay una macro LIST_HEAD_INIT y una macro INIT_LIST_HEAD en la lista vinculada del kernel de Linux ¿Cuál es la diferencia entre ellas?

Hay una macro LIST_HEAD_INIT y una macro INIT_LIST_HEAD en la lista vinculada del kernel de Linux ¿Cuál es la diferencia entre ellas?

Archivo: linux/include/linux/list.h

19 #define LIST_HEAD_INIT(nombre) { &(nombre), &(nombre) }

20

21 #define LIST_HEAD( nombre) \

22 struct list_head nombre = LIST_HEAD_INIT(nombre)

23

24 static inline void INIT_LIST_HEAD(struct list_head * lista)

25 {

26 lista-> siguiente = lista;

27 lista->prev = lista;

28 }

LIST_HEAD_INIT es una macro, e INIT_LIST_HEAD creo que es una función, del código fuente de Linux-2

.