![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c相关
ShuoPro
做一个简单的人,踏实而务实,不沉溺幻想,不庸人自扰
展开
-
cJSON详细剖析(一)----框架
先发发牢骚,作为一个非科班生,最痛苦的就是找不到项目可做。在b站长听了博主codesheep的项目推荐,决定先看看一些写的比较好的源码。第一个就推荐了cJSON,说简单嘛,也就五六百行。今天开始看,争取在科研闲暇之时早点搞完。加油加油,我尽量写的详细一点,不管是给自己还是给读者尽量好的理解。cJSON是一种轻量级的数据交换格式,也可以理解为一种语法。我的理解就是将某一种不友好阅读文本转化为友好...原创 2019-09-13 16:18:18 · 1024 阅读 · 2 评论 -
cJSON详细剖析(六)----print_string_ptr()函数(补充)
我又重新把之前的写的博客看了一遍,写的是什么狗屁,我自己看得都费劲,这里我重开一博客把之前在剖析(四)里的内容摘取出来。在分析print_object()函数时,对于出现的print_String_ptr()函数,我们做进一步的分析。下面就是print_String_ptr()函数,我已经贴好了注释,针对给定的text文件,就返回"\"name\""了。当然,上述针对的给定的text字...原创 2019-09-20 19:30:34 · 906 阅读 · 0 评论 -
cJSON详细剖析(九)----create_objects()/cJSON_AddItemToObject()函数
这里我们针对test.c里面的create_objects()函数进行向下解析。如上图框住的部分,我们就此来分析cJSON_AddItemToObject()函数。根据参数我们先分析cJSON_CreateString()函数。cJSON_CreateString()此函数在cJSON里面用了一行,为了更好的阅读,我把它按照正常的形式展开了。这段代码很简单,就是新建一个item的c...原创 2019-09-20 14:48:27 · 13391 阅读 · 0 评论 -
cJSON详细剖析(八)----dofile()函数
本想着明天若有时间的话,明天写的,但是,看了看代码,发现很简单。。。所以我就干脆提上日程,今晚把这个给分析了。如上图,我把代码按分号分行也才十来行。一看就很简单嘛。一些简单的注释我写在了后面。我一个一个解释下,权当给自己再学习学习。fopen(文件名,使用文件方式)打开一个文件,返回一个FILE文件指针,第一个参数是文件的地址,可以是绝对地址或者相对地址。第二个参数是打开的方式。...原创 2019-09-19 21:48:44 · 538 阅读 · 0 评论 -
cJSON详细剖析(七)----print_value()函数
从 剖析 五 我们可以发现,value()函数里面的print_number()函数以及print_array()函数应该是比较简单的函数。如下图,在剖析四里面,我们分析了print_object()函数,虽然没有分析print_string()函数,当时其调用的都是同一个函数print_string_ptr()。下面我们把另外俩也分析了。print_number()函数这个函数涉及的...原创 2019-09-18 15:17:19 · 2140 阅读 · 0 评论 -
cJSON详细分析(五)----parse_value()函数(补充)
因为之前我们给出的例子里面刚开始部分只是涉及到parse_string()函数,我们也只讲了这部分,现在我把parse_value()涉及到的其他几个函数也一起学习一下。parse_number()函数我们先来分析parse_number()函数,根据上图黄色框框住的部分我们知道,parse_number()是用来分析数字或' - '的,那个减号肯定指的是负数嘛。我们跳转进去。代码很简...原创 2019-09-18 12:44:51 · 1622 阅读 · 0 评论 -
cJSON详细剖析(四)----cJSON_Print()函数
今天我们讲讲cJSON_Print(json)函数时怎么实现的,我们按住F12点进去(vs编译器)。如上图,我们继续跳。因为p为null,所以这里在else里选中print_object()继续跳转。print_object()print_object()应该算是第一个有内容的函数了,这里我们分析这个print_object()函数。上面图中我做了部分注释,根据...原创 2019-09-15 11:59:26 · 21784 阅读 · 3 评论 -
cISON详细剖析(三)-----parse_object()函数
根据上一个博客,我们应该是调回了parse_object(),为了看得更清楚,我继续把框图贴出来,如下图。那今天我们就来看看parse_object()函数。parse_object()我先把这个函数贴出来。因为有点长,为了清晰的看见我分开为俩部分,中间有一些我做了简单的注释。开头部分我们先看上面这部分,这也是比较简单的部分,我说简单是因为上篇博客分析过了红色框住的部分,感...原创 2019-09-14 20:42:47 · 880 阅读 · 0 评论 -
cJSON详细剖析(二)——doit(char *text)函数框架及parse_string()函数分析
这里开始第二篇博客,正式的开始分析函数。doit(char *text)先分析main()函数里面出现的第一个函数吧,doit()这个函数前面有英文的简单介绍此函数是干什么的,大概意思就是将文本解析为JSON格式,然后在转化为文本格式,最后进行打印。我把一些代码自己的注释在了代码后边,如下图:我先把text给贴出来方面大家对着代码观看:我觉得这位作者代码功底很扎实(皮一下很...原创 2019-09-14 11:17:09 · 1794 阅读 · 2 评论 -
cJSON详细剖析(十)----总结一
cJSON的内容真的不多,毕竟我们只是去查看而不是自己去写,所以总归看得还是很快的。我们毕竟不是自己做项目,只是针对前人做的东西进行理解,学习别人的编程思维。因为cJSON毕竟使用c写的,语法涉及的也并不多,无非就是指针的来回应用,这也说明指针的强大,指针也正是c语言的精髓。然后针对个人的阅读,对cJSON涉及到的知识而自己又不太熟悉的地方做一些总结。const关键词的应用没错,我就想来讲...原创 2019-09-21 16:38:49 · 406 阅读 · 0 评论