Advertisement

Redis源代码解析,努力掌握,立即编码

阅读量:

C 语言的字符串函数#

在C语言中,C string函数可以通过char*字符数组表示字符串,而C语言标准函数库中的string.h头文件则提供了各种字符串操作函数

字符串使用广泛,需要满足:

  • 高效率字符串操作功能包括附加、复制、判断以及计算长度等基本操作
  • 支持存储任意二进制数据类型如图片文件等
  • 最大限度地优化内存占用

为什么 Redis 不直接使用 C 语言的字符串?#

C 语言 char 中间包含零字符‘\0’的部分无法完整地表示该字符串;这也正是由于这一缺陷导致难以处理二进制数据的原因。
C 语言 char 获取字符串长度的时间复杂度为 O(N);而追加操作的时间复杂度同样是 O(N),但受限于可用内存空间时可能会失败。

改写说明

复制代码
    #include "stdio.h"
    #include "string.h"int main(void) 
    {    
    char *a = "red\0is";    
    char *b = "redis\0";    
    printf("%lu\n", strlen(a));    
    printf("%lu\n", strlen(b));}

输出结果是 3 和 5。

SDS 定义#

SDS 被称为 simple dyna

全部评论 (0)

还没有任何评论哟~