阅读:5469回复:6
关于 LIST_ENTRY 定义的双向链表遍历的问题
用 LIST_ENTRY 定义的双向链表(表头?),经过初始化,可以在头部和尾部添加和删除项。可是我需要在不改变列表的情况下访问列表项的内容。请问怎样才能实现?有没有类似Next指针的东西?
|
|
沙发#
发布于:2005-04-15 10:30
用 LIST_ENTRY 定义的双向链表(表头?),经过初始化,可以在头部和尾部添加和删除项。可是我需要在不改变列表的情况下访问列表项的内容。请问怎样才能实现?有没有类似Next指针的东西? 当然能,看LIST_ENTRY这个数据结构的定义 |
|
|
板凳#
发布于:2005-04-15 15:01
是在自己的结构体里定义一个LIST_ENTRY数据项吗?是不是一定要在第一项?
|
|
地板#
发布于:2005-04-15 15:10
是否这样?
typedef _MyObj{ LIST_ENTRY; ..... ..... }MyObj; 然后呢? 执行一系列InsertHeadList( &MyObj ),然后用MyObj.link.Flink 遍历整个链表? 我这人悟性很差的,又不敢乱试。出错就重启。机子配置差,一次重启要10分钟。 |
|
地下室#
发布于:2005-04-15 16:34
是在自己的结构体里定义一个LIST_ENTRY数据项吗?是不是一定要在第一项? 是啊,但不必是第一项,有个宏CONTAINING_RECORD帮你找到结构头 |
|
|
5楼#
发布于:2005-05-18 22:15
出错就重启。机子配置差,一次重启要10分钟。 [/quote]
为什么不用虚拟机呢?很难想象如果没有虚拟机,我还会不会搞驱动。 |
|
驱动小牛
|
6楼#
发布于:2007-12-04 10:23
pListEntry = pListEntry->Flink;不就是Next么?
|