微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

了解SLIST – queue.h

我一直在寻找如何使用sys / queue.h中定义的macros使用单链表,我有一些疑惑。 目前我正在尝试使用相同的方式创build一个简单的列表。 请注意,下面的程序是不完整的,我只把我觉得是有关的部分。

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,*np; */

我不明白为什么“sle_first”完全存储在另一个结构中。 不能SLIST_ENTRY扩展到类似于下面的东西?

#define SLIST_ENTRY(type) struct type* sle_first;

执行multiprocessing.Queue和queue.Queue

信号在C中排队

创build一个队列来处理由FileSystemWatcher触发的作业

队列popup一些垃圾

不能设置POSIX消息队列属性

Python与队列线程:如何避免使用连接?

Linux scsi命令队列

如何在linux中find处理器队列的长度

Linux:如何在后台排列一些作业?

Windows c + +线程等待队列数据推送

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

所以我认为SLIST_ENTRY这种扩展方式类似于其他类型的入口,比如队列。

这已经晚了近5年,但是如果有人读这个恕我直言,这是因为一个侵入列表的节点可以同时属于许多不同的列表(多达侵入节点钩子成员),所以你的“条目“结构需要有一个不同的名称

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐