这段代码有什么作用? ('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
的指针,这表示列表的结尾。
我在搜索 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
的指针,这表示列表的结尾。