- 博客(16)
- 收藏
- 关注
原创 动态库和静态库
的内容,但是在生成main的时候 并没有把动态库中的内容拷贝到main中去,只是标记了一下main这个可执行文件,在运行的时候 需要用到。库(Library)是一种代码的二进制封装形式 ,在其他的源代码中, 可以直接调用库, 但是又看不到他的具体实现。 对于静态库 对使用静态库的代码 在编译链接的时候 直接把静态库的内容拷贝到可执行文件中去了。 对于动态库 对使用动态库的代码 在编译时 并没有把动态库的内容拷贝进去。 在使用动态库的时候 并没有把动态库中的内容拷贝到可执行文件中去。
2023-05-31 15:48:17 199
原创 linux系统提供的接口函数-系统IO(二)
我们联想一下windows 在 windows下我们双击普通文件相当于就是打开了这个文件, 我们看到的就是该文件的内容 ,同理我们双击文件夹也应该打开了这个文件夹(目录) 理应我们看到就是文件夹的内容 ,那么这就意味着我们访问一个文件夹 ,其实得到的就是这个文件夹下子文件或者子文件夹的属性信息。目录项数组的本质就是一个结构体数组 ,每一个目录项都对应一个结构体,这个结构体的类型是 struct dirent,我们如果想要知道一个目录下面的文件内容 ,那么就必须要去读目录项。“目录项”是什么呢?
2023-04-03 23:12:51 233 1
原创 利用系统IO函数实现简单CP操作
验证:将cp.c的内容拷贝到了2.txt(2.txt先前并不存在);将1.txt的内容拷贝到2.txt(2.txt的内容被清空)将1.txt的内容拷贝到了2.txt(2.txt先前并不存在);将3.txt的内容拷贝到2.txt(2.txt的内容被清空)2)拷贝的目的文件如果不存在需要创建后再拷贝,如果存在需要清空文件内容再拷贝(附图验证cp操作也是这样的)。每次拷贝(读)规定大小的字节数,如果有一次读到的字节数少于规定的,那么一定拷贝完了!1)注意拷贝的源文件不能更改,打开权限–>只读。
2023-04-01 15:28:52 358
原创 红外循迹与避障原理
LM393电压比较器的功能:比较两个电压的大小(用输出电压的高低表示两个输入电压的大小关系):当+输入端电压高于-输入端时,电压比较器输出高电平;当+输入端电压低于-输入端时,电压比较器输出低电平;VR1是一个电位器,我们通过调整电位器VR1给 LM393电压比较器 的 1(-)脚提供一个阈值电压,这个电压值的大小可以根据实际情况来调试确定。而红外对管(发射管与接收管)(发光二极管与光敏三级管结合,构成光耦合器)。
2023-04-01 10:15:42 8462
原创 详解C++构造与析构函数
如:有一些以指针为成员变量的类实例化的时候,如果没有初始化,成员指针就是野指针,我们的屏幕对象,在实例化之后,必须经过"初始化"工作,确定内部的(状态)。所以,对象的初始化往往不仅仅是对成员变量的赋值那么简单,也可能还需要进行一些动态内存分配,打开文件等复杂的操作,这种情况下,我们就不能以初始化基本类型的方式来对对象进行初始化了。在构造函数中,仅仅是对成员变量的赋值,这里严格意义上来说,不是初始化,仅仅是一个赋值计算的过程,当成员变量是常量的时候,常量是不能赋值的,就会报错。
2023-04-01 09:59:20 295
原创 C++命名空间
C++是一门以C为基础,发展而来的面向对象的程序设计语言。1983 由Bjarne(比扬尼)在贝尔实验室创建 C with class1984 改名为C++ C plus plus1987 g++1998 C++98()国际标准发布。称为C++ISO98,以后每5年更新一次标准2003 C++032011 C++11()这次标准对C++语言的影响很大,称为现代C++(新标准)2014 C++142017 C++172020 C++20GUN/linux平台。
2023-04-01 09:25:03 44
原创 IIC与AT24C02
在第9个周期时,接收方如果收到了就会立即把发送方释放的SDA=1拉低到SDA=0,即给SDA一个低电平(表示我收到了),如果没有收那么就不会回应,不会拉低,那么SDA就是发送方释放的高电平。若达到存储器地址末尾,地址自动回转到0,仍可继续顺序读取数据。所以IIC协议规定:每个IIC总线上的设备都必须有一个IIC设备地址(7bits/10bits),并且,同一个IIC总线上的设备,地址肯定不一样。随机读需先写一个目标字地址,一旦EEPROM接收器件地址和字地址并应答了ACK,主器件就产生一个重复的起始条件。
2023-03-31 23:16:22 529
原创 SPI与W25Q128
SPI:即Serial Peripheral interface 串行外设接口(Motorala公司)SPI是一种的通信总线。全双工意味着至少需要两根数据线,串行意味着按bit发送,同步意味着通信双方共用时钟线。同样的SPI总线上也可以连接多个SPI设备,那么总线上的时钟由谁产生?谁产生都可以,只要同一时刻没有多个设备同时产生时钟就可以。通过谁去控制时钟线我们将设备分成:Master 主设备:产生时钟信号的设备Slave 从设备:接收时钟信号的设备。
2023-03-31 22:38:22 1078
原创 正则表达式
正则表达式是用来描述某种规则的字符串的表达式 ,脱离具体语言的一些规则 ,但是现在大多数设计语言都实现了或者支持正则表达式。正则表达式也叫做 “匹配模式”,pattern, 他是由一组特定的字符串组成, 通常用于匹配和替换文本。虽然由多个字符构成 ,但是它仍然只匹配单个字符。匹配最少“最小数目”个, 最多“最大数目”个先前字符**(模式)**。匹配0个或者1个先前字符**(模式)**匹配一个或者多个先前字符**(模式)**匹配0个或者多个先前字符**(模式)**{数字} 匹配固定数字的字符(模式)
2023-03-26 17:16:53 52
原创 shell脚本语言
num = 520 data = ` cmd ` #`反撇号引用里面的cmd表示的那个命令或者说执行程序或者脚本的输出结果 data = ` ls -l ` echo $data//函数的内部具体实现;:你要定义的函数名字, 名字的取法和C语言类似,做到“名如其意” “大驼峰”或者“小驼峰”。
2023-03-26 17:12:27 116
原创 Windows系统下安装Linux子系统连接vscode编译C/C++代码
在Windows电脑软件商店Microsoft Store搜索Ubuntu,下载Ubuntu xx.xx.x LTS,电脑配置高可以下载Ubuntu 22.04.x LTS,我这里下载Ubuntu 18.04.5 LTS。Microsoft Store搜索Ubuntu==>免费下载==>获取。需要几分钟进行安装,安装好后,输入用户名和密码进行用户注册。下载好后==>点击打开(就是安装)可能出现0x8007019e错误。编辑C代码,进行编译测试,成功。运行PowerShell。注:用户名好像不能大写。
2023-03-26 15:23:05 1360
原创 程序是什么?
编译时编译器只对单个文件进行处理,如果该文件里面需要引用到其他文件中的符号,那么这时在这个文件中该符号的地址是没法确定的,只能等链接器把所有的目标文件链接到一起,才能确定最终的地址,最终生成可执行文件。因此我们人写的程序,一般要通过一个编译器把高级语言翻译成一个计算机能看懂的文件,这其中涉及到了多个软件层。2.指令是能被计算机识别并执行的位串,就是一串二进制数字,因为计算机只能识别0/1二进制数字组成的指令,一台计算机能识别的全部指令就是指令集,指令集是由其设计厂家规定设计的比如MIPS,ARMv7。
2023-02-09 13:32:01 675
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人