自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 c语言实现hash map(链表散列hash)

散列(hash):将字符串转换为固定长度的数组或索引值的方法,叫做散列法。hashmap的底层结构hashmap是一个链表散列的数据结构,即是数组和链表的结合体。(也可能是数组+链表+红黑树)数组:存储空间连续,占用内存严重,寻址容易,插入删除数据困难链表:存储数据离散,内存不连续,寻址困难,插入删除数据容易hashmap综合了数组和链表的优点,实现了寻址容易,插入删除数据同样容易h...

2019-06-15 22:39:43 4698

原创 字符串操作

1、自定义字符串切割函数:以字符cut为分隔符,对字符串进行分割,并将切割结果保存在buf缓存中void string_cut(char* buf,int buf_size,const char*source,char cut)//以字符cut为分隔符,将字符串source进行分割{if(bufNULL || sourceNULL)break;memset(buf,0,buf_size)...

2019-06-15 19:35:45 99

原创 makefile文件编写

参考文献:https://blog.csdn.net/weixin_38391755/article/details/80380786

2019-06-11 22:14:32 91

原创 hash

#include <stdio.h>#include <string.h>#include <stdlib.h>#include <jansson.h>#include"dirent.h"//hash map#define key_size 100typedef struct htitem{ char key[key_size];...

2019-06-10 21:57:45 100

原创 C语言遍历linux的目录及其子目录下的所有文件

int search_dir(char *path){ DIR *dir=NULL; struct dirent *entry=NULL; if((dir=opendir(path))==NULL) { printf("opendir failed\n"); return -1; } else { while((entry=readdir(dir))!=NULL) ...

2019-06-10 17:33:28 2940 1

原创 const指针与普通指针的负载操作

总规则:条件只能越来越严格,不能越来越轻松。1、普通指针可以赋值给const指针,反之错误 const int *p1; int *p2; p1=p2;//正确 p2=p1;//错误 p2=(char *)p1;//强转可以2、普通指针可以给常指针初始化,但是常指针不能给普通指针初始化(或赋值) int *p1=(int *)malloc(sizeof(int)); int...

2019-06-09 21:03:21 741

原创 C语言返回局部变量以及局部变量地址

结论:函数可以返回局部变量的值,但是不能返回指向栈内存的指针。原因:局部变量的作用域为函数内部,函数执行结束,操作系统会自动释放栈上的局部变量。并且函数返回的是局部变量的值拷贝。但是如果返回局部变量的地址,那么返回的是该局部变量地址的值拷贝,但是函数运行结束,该拷贝指针所指向的栈内容已经被释放即为野指针,对野指针所指向内容的操作都会造成段错误...

2019-06-09 20:34:48 1963

原创 samba服务配置

3、启动SMB服务· systemctl start smb nmb· systemctl status smb4、创建共享目录并更改文件夹权限· mkdir /public· chmod 777 /public· chmod 777 /5、添加samba账户· smbpasswd -a root (将存在的系统用户添加进去)补充:查看samba账户 pdbed...

2019-06-05 11:45:19 269

原创 遍历jansson数据

待更新

2019-06-04 10:31:48 864

原创 jansson数据提取

1、支持按照表名、记录号、JSONPATH从原始数据中提取指定字段的值2、支持按照表名从原始数据中获取有多少条记录3、支持按照表名、记录号和JSONPATH从原始数据中获取指定内层json_array的记录数...

2019-06-04 10:30:35 895

原创 jansson api 接口

用c语言数据结构描述的jansson数据类型,这数据类型用来表示这个JSON值的类型:json_t这个数据类型在数据库中用来表示所有的JSON值。该结构有该JSON值的类型和该值的引用计数组成。json_t的对象总是通过指针使用的。jansson提供用于查询JSON值类型、操作引用计数以及构造和操作不同类型值的API接口。JSON值类型:JSON定义了以下类型:JSON_OBJECT :...

2019-05-31 16:21:31 4196

原创 jansson安装及编译

Jasson:安装指令:yum install json-glib-devel.x86_64编译指令:gcc main.c -g -o test_json_glib $(pkg-config --cflags --libs json-glib-1.0)参考网站:https://blog.csdn.net/zhangge3663/article/details/82685712...

2019-05-31 15:05:06 1348

原创 C++笔记8-运算符重载

1、运算符重载的本质是函数重载

2019-01-07 17:02:13 220

原创 c++笔记7-友元函数及友元类

一、友元作用:提高了程序的运行效率(减小了类型的检查和安全性检查所需的时间开销,以及避免通过成员函数访问私有成员变量压栈出栈等操作),但破坏了类的封装特性,使得非成员函数可以访问类的私有成员。格式如下:friend 类型 函数名(形式参数);二、友元函数友元函数是可以直接访问类的私有成员的非成员函数。它是定义在类外的普通函数,不属于任何类,但要在类的定义中进行声明,声明时只需在友元函数的名...

2019-01-07 15:15:30 158

原创 C++笔记6-this指针

1、C++类的普通成员函数都隐式包含一个指向当前对象的this指针,但静态成员函数不包含指向具体对象的指针。2、this指针本质上是一个常指针 :类型 *const p;3、员函数后面加const 修饰的不是函数,修饰的是隐藏的this指针,则此时该成员函数的this指针为指向常量的常指针:const 类型 *const p;class Test{public:Test(int...

2019-01-07 13:05:12 107

原创 C++笔记5-new和delete以及类的static成员

一、new和delete操作符1、malloc free是函数,标准库,需要stdlib.h,new和delete是C++语言的操作符,因此执行效率高。2、new 运算符动态分配堆内存使用方式:指针变量 = new 类型(常量);指针变量 = new 类型[表达式];作用:从堆分配一块“类型”大小的存储空间,返回首地址其中:“常量”是初始值,可以缺省,创建数组对象时,不能为对象指定...

2019-01-05 18:22:52 917

原创 C++笔记5-构造函数和析构函数

一、构造函数1、定义:类中与类名相同的特殊成员函数2、调用规则:(1)在对象创建时自动调用,完成初始化相关工作(2)无返回值,与类同名,默认无参,可以重载,可默认参数(3)默认构造函数。 就是一个无参数的构造函数,如果不显示提供构造函数,系统就是调用默认的构造函数。如果我们提供了一个显示的构造函数,那么默认的构造函数就被隐藏掉了。构造函数一旦手动提供, 默认将不复存在。3、拷贝构造函数...

2019-01-05 17:00:25 202

原创 C++笔记4—随记

1、参数传递值传递:有拷贝过程。指针或引用传递:没有拷贝过程2、类的注意事项同类间无私处:在一个类中访问同类的某个成员变量,无需通过API接口,可以直接访问。在类外改变或者访问私有成员变量,可以通过类内的公有函数getter或setter进行操作多文件编程方式:一个类对应一个.h文件和一个.cpp文件,在.h文件中进行类内公有函数声明,在.cpp文件中进行公有函数的定义。...

2019-01-01 21:17:03 114

原创 C++笔记3—内联函数,默认参数和占位参数及函数重载

1、内联函数特点:1)内联函数声明时inline关键字必须和函数结合在一起,否则编译器会直接忽略内联请求。2)C++编译器直接将函数体插入到函数调用的地方3)内联函数没有普通函数调用时的额外开销(压栈、跳转、返回)4)内联函数具有普通函数的特征(参数检查、返回类型等)5)内联函数由编译器处理,直接将编译后的函数体插入调用的地方宏代码片段由预处理器处理,进行简单的文本替换,没有任何编译...

2018-11-22 21:29:03 147

原创 C++笔记2-对C语言的扩展

1、引用的规则(1)引用没有定义,是一种关系类型声明。声明它和原有某一变量的关系。因此,类型与原类型保持一致,且不分配内存。与被引用的变量有相同的地址。(2)声明的时候必须初始化,一经声明,不可变更。(3)可对引用,再次引用。多次引用的结果,是某一变量具有多个别名。(4)&amp;符号前有数据类型时,是引用。其它兼为取地址。2、引用的本质(1)引用在C++的内部实现是一个常指针,因此引...

2018-11-21 22:25:41 107

原创 C++笔记1—C语言的增强

C++笔记1—C语言的增强1、命名空间(1)namespace:更好地控制标识符的作用域,命名空间将全局作用域分成不同的部分,不同命名空间中的标识符可以同名而不会发生冲突,命名空间可以相互嵌套,全局作用域也叫默认命名空间。(2)命名空间的定义:namespace name {。。。}(3)命名空间的使用使用整个命名空间:using namespace name;使用命名空间里的变量:...

2018-11-21 15:12:46 108

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除