今天呢,主要讲动态库的封装和设计。就是从C语言的角让大家把模块儿和模块儿之间的划分更加清晰一点。

接口的测试hand的概念搭建测试框架和测试案例,然后呢,再写核心的动态库的嗯,源码在核心动态库的源码之上,再加日志。

就这样的话,我们彻彻底底的把C语言变成一个工具啊,这个思想嗯,

希望大家能掌握。嗯,今天的内容啊,会越来越贴近实战嗯,希望大家啊课堂听个提高这个动手能力。


那我们继续我们看我们上一次课的课程,给大家讲了哪些东西好吧嗯,

那我们就回到我们的什么呢?回到我们这个地方。我们看一下上一课课程,我们讲哪些东西了啊?

C语言的文件操作是吧?还有结构体的高级呃,高高级话题是吧?我们看先看那个结构体的高级话题吧,那我们找到我们代码代码。

我们打开文件,我们看一下。在这里边儿讲了一个深拷贝和浅拷贝的问题,深拷贝和浅拷贝的问题是因为如果一个接口体里面有一个指针。

这个指针所指向一款内存空间,譬如这里啊,定义一个结构体变量,定义一个结构体变量,然后呢,

把结构体一的变量拷贝给结构体二,当然呢,在拷贝之前你有一个磨拉操作t一这个。那这样呢,会造成一个什么效果呢?

t一和t二的t一和t二的这个。p name这个域这个指针这个域会指向同一款内存空间,指向同一款内存空间。

这样的话,当我们释放的时候啊,有可能对这一块内存空间。重复的失望原因是因为如果我们使用了。

这种机械的前拷贝机械编辑给我们提供的拷贝,拷贝动作,等会再做,那么只会把只会把。指针变量的值拷贝给two,

不会把指针变量所指向的内存空间的数据拷贝给two,所以说呢,如果你想这么做,你只有显示的摩拉图看内存。

然后把这块内存的内容拷贝到这里面去,

所以说这是像这个操作就是深拷贝OK,这是这个点。然后呢?我们再讲了一个结构体的高级话题,

就是偏移量通过这个案例啊,就是告告诉大家,我们可以把这个内存块。

这个变量,这个类型定义的变量映射到什么呢?映射到零那个地方零内存处。p减p等于零吧,对不对?


那映射到零这个开始的内存空间里面。然后呢?去求呢?我们的每一个成员域。相对于这个变量基质的这个偏移量。

这是需要大家注意一个话题啊嗯嗯,只要结构体大的结构体定下来,则每一个结构体的成员运。

相对于接口题的相对偏移量就定下来了okay啊,这个地方啊。那我们再看一下啊。这是那个结构体的高级话题啊嗯,

那那个呃呃也给大家呃,就是参考作业啊OK结构体这个给大家回顾到这里。然后呢,

我们看稳定操作,稳定操作,这个相对来讲啊呃,是比较简单一点,那按行按照字符读写文件,按照行读写文件,

按照块儿读写文件就是这呃,还有格式化文件读写是吧?这几个是基本的API函数,那打开它。

还差一个。demo零一比如是按照字符去读是吧?我们用fgets f puts是吧?

f get cfp utc是吧?这个是都比较呃,应该是比较基础的。然后呢,我们再看第二个,

按照行按照行读的时候,我们是这么做的。完了嗯f gets就这个函数啊,需要大家掌握掌握什么呢?

第一个参数是内存的首地址,第二个是传给。呃调用者把内存的地址和内存的最大长度言外之意是调用者分配内存,

把这个内存的地址和你分配的内存的最大长度传给被调用者,然后被调用者在这个地方可以做。做一些那个嗯,

代码稳定性和建筑性的控制对吧?嗯,如果这一行超过了你这个分配的长度,它只会比如说你只分配了十二个。

它只会考十一个字符,在后面加个星号,星号零是吧?

变成c分母的字符串是吧?那个fgs s啊嗯,另外这个ffgss啊,它还有一个特点,

它把这个斜杠n也拷贝过来了嗯。如果一行接尾嘛,这个要特别注意的啊。


内存打包技术,然后呢,再看呢,按照块儿按照块儿这个当时跟大家讲res和rad函数啊res和rad函数。

参数都是一样,从这个文件里面这是写啊,往这个文件里面写,每次从这个内存储地址写这个内存块的大小是这么大,

然后呢,写一次返回的是次数。好多学员啊,把这个次数啊,

这个地方没有注意出去的,往往把这个落下,这个特别重要啊嗯OK那个堵也是一样啊,

堵是堵的次数,那你怎么样判断这个磁盘有没有写满?

写满以后写了多少个字节啊,就通过它写了多少回是吧嗯?鞋是一样啊,这个案例讲完以后我们给大家讲了一个综合的案例,那

我们看一下哪个综合案例啊?综合案例是这样给大家介绍的,

就是我们给大家讲了一个那个配置文件读写的是吧?配置文件读写呃,首先呢,我们要学会呃讲这个案例的目的是让大家学会什么呢?


我们能按照。功能划分,某个划分的这个角度去思考问题,

就是如果让你开发一个配置文件读写的这么一个应用程序简单的应用程序啊去要。

七七八八,你要把那个测试界面或者是集成框架,还有这三个底层的API函数给分开。分开有什么好处呢?

起起码码界面层和接口层和底下的配置文件读写层,它俩AB这两个层啊,分的很清楚。

然后呢,我们再做一个集成这样模块与模块之间,通过接口进行偶合,那另外一点呢,

接口要求紧,模块要求松。就是这个写和修改可以放在一块儿。那写那这样做的时候,

我们写配置文件的时候,先判断我们的配置项存在不存在,如果是存在,我们就修改,

如果不存在,我们就写OK读更简单。读呢,就是读一行行读嘛,检索的关键字对吧?这是思想,思想有了以后,

当时我们就是这么对现代码的。是吧,正好我们你看我们我们设计是这么来的配置文件呢,

首先呢,我们定义出接口分清楚,输入和输出。然后呢,在这个基础之上,我们集成写一个界面,

写完集成面界面以后,我们写核心的业务,业务函数OK,就这么做的哈。嗯,在这里边,


我们是一行一行的读,还有几个函数需要跟大家强调读配置,行置行是一行一行的读,对吧?

一行一行的读,然后呢?扫描关键字提出来,然后呢?这个。企业配置文件也是这样,

一行一行的读只不过是这个地方,这几个文件控制类函数f sick f sick是把文件指针从零位置开始移到文件末尾

f tab是求职文件场所,再重新置顶是复位是吧?复位成文件文件开始。这个函数要会用啊,要会用FC的,

这个函数OK呃,这个讲完以后呢,我们又给大家讲了一个价钱密的啊,价钱密的这个案例。

家具面的案例是这样的哈,我们看一下啊。这里面的案例,我们看一下这个也是这样的,

我们看一下啊。首先呢,在企业里面,我我们可能面对一大堆的。企业级的这么一套财富库,

比如说配置文件读写的数据加解密的网络通讯的插啊,报文编码的xm lh http。然后呢?

这一套的呃接口啊,还有你关键业务逻辑的都给你封装好了,那你怎么样集成和调用别人的API函数呢?

这个就是我想跟大家说的。那在企业里面要迅速的能集成别人的代码,


下面是小编整理的c语言高阶课程目录:


01课程回顾.wmv


04再谈多级指针做输出.wmv


05动态库的基本概念和使用.wmv


06动态库测试环境和调试环境搭建.wmv


07socketclient动态库第二套api画数.wmv


08socketclient动态库日志功能集成.wmv


09项目中检索内存泄漏使用和基本原理.wmv


10动态库基本知识和环境调试注意.wmv


11动态库内存释放问题.wmv


023指针用法杂项.wmv



动态库内存释放问题讲解教学视频截图:

C语言进阶提高疑点与难点解析教程视频(自学程序开发)

C语言进阶提高疑点与难点解析教程视频(自学程序开发)下载地址
C语言进阶课程
百度网盘 / 课程大小:0.00字节
提取码:**** (购买后可见)
下载
评论下
  • 顺带评个分
提交
返回顶部