gpt4 book ai didi

c - 了解 SLIST - queue.h

转载 作者:太空狗 更新时间:2023-10-29 12:21:35 26 4
gpt4 key购买 nike

我一直在研究如何使用 sys/queue.h 中定义的宏来使用单链表,但我有一些疑问。目前我正在尝试使用相同的方法创建一个简单的列表。请注意,下面的程序是不完整的,我只输入了我认为相关的部分。

int main() {
SLIST_HEAD(slisthead, entry) head = SLIST_HEAD_INITIALIZER(head);
struct slisthead *headp;

struct entry {
SLIST_ENTRY(entry) entries;
}*n1, *n2, *n3, *np;


/* Upon expanding the macro we would get,
* struct entry {
* struct {
* struct entry *sle_first;
* } entries;
* }*n1, *n2, *np;
*/

我不明白为什么“sle_first”完全存储在另一个结构中。不能将 SLIST_ENTRY 扩展为如下所示的内容吗?

#define SLIST_ENTRY(type) 结构类型* sle_first;

最佳答案

sys/queue.h 还包含双链表和队列,它们在条目中需要多个指针。

所以我认为 SLIST_ENTRY 以这种方式扩展为类似于另一种类型的条目,例如队列。

关于c - 了解 SLIST - queue.h,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5168183/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com