c语言
文章平均质量分 89
一朝英雄拔剑起
又是苍生十年劫
展开
-
【深度解析】能容纳所有整数类型的神奇结构----Redis intset
文章目录1 整数集合intset概念2 整数集合intset的结构3 升级4 降级5 参考文献1 整数集合intset概念整数集合(intset)是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时,Redis就会使用整数集合作为集合键的底层实现。整数集合(intset)是Redis用于保存整数值的集合抽象数据结构,它可以保存类型为int16_t、int32_t或者int64_t的整数值,并且保证集合中不会出现重复元素。2 整数集合intset的结构typedef st原创 2021-06-22 10:04:39 · 303 阅读 · 2 评论 -
【深度解析】Redis 字典dict 数据结构
文章目录1 什么是字典2 Redis 字典的特点3 Redis字典的结构3.1 哈希表节点3.2 哈希表3.3 字典结构4 哈希算法5 解决键冲突6 rehase7 哈希表的扩展与收缩8 渐进式rehash1 什么是字典字典,又称为符号表(symbol table)、关联数组(associative array)或映射(map),是一种用于保存键值对(key -value pair)的抽象数据结构。在字典中,一个键(key)可以和一个值(value)进行关联(或者说将键映射为值), 这些关联的键和值就原创 2021-06-20 13:11:43 · 741 阅读 · 1 评论 -
【深度解析】Redis 链表结构
文章目录1 Redis链表特点2 Redis链表结构2.1 双端链表节点2.2 双端链表结构2.3 双端链表迭代器3 部分API实现3.1 获取迭代器3.2 复制整个链表3.3 查找4 参考资料1 Redis链表特点链表提供了高效的节点重排能力,以及顺序性的节点访问方式,并且可以通过增删节点 来灵活地调整链表的长度。作为一种常用数据结构,链表内置在很多高级的编程语言里面,因为Redis使用的C语言并没有内置这种数据结构,所以Redis构建了自己的链表实现。 链表在Redis中的应用非常广泛,比如列表键原创 2021-06-19 10:55:34 · 622 阅读 · 0 评论 -
找互满数
/****************************************************************Name :CalSumOfDivisor*Fun :求所有约数的和(不包含本身)*InputParaments :a,待求对象*OutputParaments :所有约数的和******************...原创 2020-01-28 22:13:23 · 908 阅读 · 1 评论 -
字符串移位加密解密
加密:将字符串"a-z"往左循环移k位解密:将字符串"a-z"往右循环移k位/****************************************************************Name :StringEncrypt*Fun :字符串加密*InputParaments :data是待加密的数据;k代表循环往左移k...原创 2020-01-26 14:27:42 · 2105 阅读 · 0 评论 -
C语言冒泡排序并返回索引
C语言冒泡排序并返回索引/****************************************************************Name :SwapElement*Fun :交换两个数据*InputParaments :a、b是两个待交换的数据指针*OutputParaments :None***********...原创 2020-01-25 20:27:36 · 1434 阅读 · 0 评论 -
辗转相除求最小公倍数
辗转相除求最小公倍数/****************************************************************Name :MinimumCommonMultiple*Fun :求最小公倍数*InputParaments :m,n是待求的数*OutputParaments :所求的最小公倍数*****...原创 2020-01-25 20:25:32 · 273 阅读 · 0 评论 -
链表局部翻转
链表局部翻转typedef struct listnode{ int data; struct listnode* next;}ListNode;void ReversePartList(ListNode** list, int m, int n){ ListNode* pre=NULL, *p=NULL, *q=NULL, *t=NULL,*k=NULL; int i = 1;...原创 2020-01-25 20:23:08 · 337 阅读 · 0 评论 -
循环有序数组找最小值
循环有序数组找最小值int JudgeAscendingOrDescending(int* data, int len) { if (len < 4) {//无法判断 return -1; } int flag1=0, flag2=0; for (int i = 0; i < 3; i++) { if (data[i] > data[i + 1]) fla...原创 2020-01-25 20:19:44 · 501 阅读 · 0 评论 -
C语言实现字符串逆序
字符串逆序/****************************************************************Name :StringReverse*Fun :字符串逆序*InputParaments :str是待逆序的字符串*OutputParaments :None********************...原创 2020-01-25 20:17:02 · 2694 阅读 · 0 评论 -
使用V4L2读取摄像头并在LCD上显示
我的环境是友善之臂的fire3,Ubuntu1604,使用的是uvc免驱摄像头大致的工作流程如下一、获取摄像头图片1、打开摄像头2、获取摄像头的一些信息,比如支持的格式等等3、设置摄像头的一些参数,比如输出格式等等4、申请缓冲区5、内存映射6、开始采集二、将图片在lcd上显示出来1、打开lcd的设备fb0,如果没有这个,恭喜。2、获取一些lcd的信息,如...原创 2019-01-30 18:21:20 · 3228 阅读 · 4 评论 -
静态库与共享库以及环境变量
一、静态库与共享库1、什么是库文件?库文件 就是 程序的打包,Unix和Windows中都使用了库文件。库文件分为:静态库和共享库(也叫动态库)。2、静态库和动态库有什么区别?静态库是代码的归档,每次使用代码时,会直接复制代码段到目标文件。共享库是代码的集合,每次使用时不复制代码段,而是提供代码 的地址(函数指针)。3、静态库和动态库的优缺点静态库的优点:速度稍快,链接...原创 2019-01-13 20:52:27 · 796 阅读 · 0 评论 -
C语言错误处理
C语言错误处理1、什么是错误处理?程序错误是指在软件运行中因为程序本身有错误而造成的功能不正常、死机、数据丢失、非正常中断等现象。错误处理程序是指软件系统中用于处理错误的程序。在编程语言中,错误处理模型一般可以分为:返回值模型、全局错误标志模型、恢复性模型和限制性模型。2、C语言的错误处理C程序员没有异常机制,一般用返回值标识错误,判断返回值进行错误的处理。2.1 返回值表示出...原创 2019-01-13 19:59:58 · 4879 阅读 · 0 评论 -
c语言编译过程
编译可以分为4个阶段1、预处理,处理所有的指令(以“#”开头的语句),替换为纯c的语句。2、编译,编译纯c的语句。3、汇编,转成机器语言。4、链接,将多个文件合成一个文件。通常情况下,把预处理、编译、汇编统称为汇编。 gcc 是unix环境下的编译器,常用的指令如下:1、gcc hello.c 完成上面的4个步骤,生成a.out可执行文件。2、gcc -o na...原创 2019-01-13 19:19:57 · 139 阅读 · 1 评论 -
C语言预处理指令
预处理指令在一个程序的编译过程中,分为四个阶段,即预处理、编译、汇编、链接。预处理过程中,会处理所有的指令(以“#”开头的语句),替换为纯C的语法。下面列举一些常用的预处理指令。 #define 定义宏 #elif else if 多选分支 #else 与#if #ifn...原创 2019-01-13 18:56:25 · 450 阅读 · 0 评论