(2)redis源码学习笔记及体会

本人根据博主 “Android路上的人”的学习路线——地址如下原链接,进行的学习,博主推荐先阅读结构体部分比较好,再次感谢博主“Android路上的人”的分享,对我的学习帮助很大!

本篇记录学习redis的结构体部分的过程(未完待续)

博主说“adlist.c”中重点有——1.数据结构的链表2.函数编程的思想3.c中的迭代器写法,这三个部分,于是我将带着这三部分的思考开始进行学习。

一.2020.11.05

 先把adlist的头文件看了

1.链表的节点listNode可看出,是双向链表。

2.节点内的值的部分是一个void*类型的指针,所以使用更灵活

3.迭代器的结构里,是一个单向的链表结点和一个表示方向的int值

4.list链表里包含头结点、尾结点,无符号long型的列表长度、以及三个指针,我现在暂时不知道是什么作用,根据名字推测为——增加、释放、查找??

——查看了博主的博客以后,发现这三个代表的分别是——1.复制函数指针2.释放函数指针3.匹配函数指针

5.后面还有一些代码,原来是宏定义的基本操作,竟然一开始没有看懂

6.在下面就是函数名的定义了,倒是没什么(此图来源字原博主的截图)

7.宏定义了,迭代器的方向——0.从头到尾1.从尾到头

头文件部分主要就是这样了!

8.adlist.c中除了对自身头文件的引用,还引用了zmalloc.h,因此涉及到内存分配的部分

二。11月10日

adlist.c

1.adlist.c文件里面,每个功能函数的流程基本是——(1.新建一个node的指针 2.给node使用malloc分配内存3.分配内存失败返回null,成功将一个传入的空指针类型的value赋值给node的value4.判断list是否为空5.如果是空的则list的head和tail都被赋值为node;否则按需赋值6.更改list的长度7.返回list)

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值