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 @ 2022-02-27 19:13  habibah_chang  阅读(50)  评论(0编辑  收藏  举报