redis原source学习-dict

源代码连接:

https://github.com/redis/redis/blob/unstable/src/dict.h

https://github.com/redis/redis/blob/unstable/src/dict.c

dict.h:类dict(字典<哈希>)

Function Set:dict->type

 

dict.c:

调用例子入口:dictTest 

函数指针:

可不需要#typedef进行声明,三种使用方式

//方式3 :直接通过指针类型创建,不需用typedef预定义。
    int(*fp3)(int, int) = NULL;
    fp3 = func;
    fp3(27, 89);

 

在redis中,实现具体函数(如:hashCallback

这里,由于在.h文件中对Type的定义中,已经包含对该函数指针结构的定义:

//定义
typedef struct dictType {
    uint64_t (*hashFunction)(const void *key);
    ......
}

 

调用时:

复制代码
//具体函数实现
uint64_t hashCallback(const void *key) {
    return dictGenHashFunction((unsigned char*)key, strlen((char*)key));
}

//调用
dictType BenchmarkDictType = {
    hashCallback,
    ......
}
复制代码

 

posted @   habibah_chang  阅读(55)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
历史上的今天:
2021-02-27 407. Trapping Rain Water II
2021-02-27 301. Remove Invalid Parentheses
点击右上角即可分享
微信分享提示