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)
还没有任何评论哟~
