内核学习——1、list_head

双向循环链表:list_head

头节点head是不使用的:

struct list_head {

struct list_head *next, *prev;

};

结构体中没有数据域,所以一般把list_head嵌入到其他结构中使用

struct file_node {

char c;

struct list_head node;

};

此时,list_head就作为它父结构体中的一个成员了,我们知道list_head的地址(指针)时,就可以通过list_entry来获得它的父结构的地址

#define list_entry(ptr, type, member) container_of(ptr,type,member)

通过结构体成员地址来求得结构体地址:ptr是所求结构体中的list_head成员指针,type是所求结构体类型,member是结构体list_head成员名

list_for_each:遍历双向链表

LIST_HEAD():生成双向链表头节点

list_add():插入操作

list_del():删除操作

list_empty():判断是否为空

相关推荐
2的n次方_1 小时前
迎接AI新时代:GPT-5即将登场的巨大变革与应用前瞻
人工智能·gpt·学习
xiandong201 小时前
240707_昇思学习打卡-Day19-基于MindSpore通过GPT实现情感分类
人工智能·gpt·学习·分类
sealaugh322 小时前
spring boot(学习笔记第十二课)
spring boot·笔记·学习
会翻身的嵌入式咸鱼3 小时前
蓝桥杯开发板STM32G431RBT6高阶HAL库学习FreeRtos——完成第一个小项目点灯
stm32·学习·蓝桥杯
Alice_JC3 小时前
《昇思25天学习打卡营第11天|计算机视觉-ResNet50迁移学习》
深度学习·学习·计算机视觉·迁移学习
玉标3 小时前
ELK日志系统和Filebeat采集器的学习总结
学习·elk
祖国的好青年3 小时前
基于正点原子FreeRTOS学习笔记——时间片调度实验
笔记·学习
xiaoyalian4 小时前
横截面数据回归
笔记·学习·数据挖掘·回归·r语言
王红花x4 小时前
STL——list模拟实现
c++·学习·list
Sam90294 小时前
《昇思 25 天学习打卡营第 11 天 | ResNet50 图像分类 》
学习·分类·数据挖掘