这段代码有什么作用? ('struct foo{struct foo *var;};')

What does this code snippet do? ('struct foo{struct foo *var;};')

我在搜索 C 中的垃圾收集时遇到了一些代码片段。我阅读了这个 article,它的标题是“用 C 编写一个简单的垃圾收集器”。

而这个 Struct 是 eye-catching:(对我来说)

typedef struct header {
    unsigned int    size;
    struct header   *next;
} header_t;

据我所知,typedef struct header 用于保存一些击键,因此如果使用 struct,您只需键入

header_t hdr;

而不是:

struct header hdr;

但是,我不明白第 3 行的作用:

struct header    *next;

该结构是链表中的一个节点。

结构中的指针元素可以指向结构的另一个实例。这允许您为结构的实例动态分配内存并将其放在列表的末尾(或开头)。您将有一个指向第一个元素的指针,通常称为列表的 head。然后,您可以按照 next 指针遍历列表,直到找到一组指向 NULL 的指针,这表示列表的结尾。