首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Linux 内核通用链表学习小结

描述 在linux内核中封装了一个通用的双向链表库,这个通用的链表库有很好的扩展性和封装性,它给我们提供了一个固定的指针域结构体,我们在使用的时候,只需要在我们定义的数据域结构体中包含这个指针域结构体就可以了...传统的链表结构 struct node{ int key; int val; node* prev; node* next; } linux 内核通用链表库结构 提供给我们的指针域结构体...反推结构体首地址 举个例子 这个例子包括简单的增、删、遍历 #include #include #include #include #include MODULE_LICENSE("GPL"); MODULE_AUTHOR("...内核提供的这个通用链表库里面还有很多其他的接口,这里没有详细的一一举例,有兴趣的可以自己去看看,在源码包 include/linux/list.h 文件里面,不过通过阅读一些源代码确实对我们也有很大的提高

1.2K21

C语言ADT(抽象数据类型编程) (含Demo演示文件)

下面是结合ADT程序设计模式的例子进行介绍: 查看工作区,里面包含三个文件: list.h:数据的定义和声明,接口函数的声明 list.cpp:接口函数的实现 cw0901d.cpp:用于引用和测试代码块...“list.h”文件内容如下: list.h//////////////////////////////////////////////////////////////////////////...在list.h中定义抽象数据并声明接口函数(将代码块定义在一个条件编译#ifndef……#define……#endif中可防止头文件被重复包含) 2....在list.cpp文件的开头包含list.h并实现接口函数) 3....在测试文件cw0901d.cpp文件的开头包含list.h头文件(编译器会自动根据头文件去连接具体的.cpp具体代码实现的文件) 实现上述的三个步骤后,cw0901d.cpp中就能直接对list.h中的数据和方法进行引用了

89330

FreeRTOS(八):列表和列表项

与列表相关的全部东西都在文件 list.c 和 list.h 中。...在 list.h 中定义了一个叫 List_t 的结构体,如下: (1) 和 (5) 、 这 两 个 都 是 用 来 检 查 列 表 完 整 性 的 , 需 要 将 宏 configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES...这 两个都在文件 list.h 中有定义,先来看一下列表项,定义如下: (1)和(7)、用法和列表一样,用来检查列表项完整性的。以后我们在学习列表项的时候不讨 论这个功能!...3、迷你列表项 迷你列表项在文件 list.h 中有定义。 (1)、用于检查迷你列表项的完整性。 (2)、xItemValue 记录列表列表项值。 (3)、pxNext 指向下一个列表项。...这个函数本质上是一个宏,这个宏在文件 list.h 中定义。

1.9K40
领券