- 博客(21)
- 收藏
- 关注
原创 文件IO相关知识
补充:一个头文件中可以包含多个内容1.创建一个头文件,例如myhead.h2.将能用到的所有头文件都放入该文件中3.将myhead.h文件,移动到根目录下的usr目录中的include目录下4.常用的头文件:,#include<iostream>,#include<string>,#include<iomainip>(C++中的格式化输出),#include<stdio.h>,#include<math.h>,#include<string.h>,#include<stdlib.h>
2024-09-11 17:10:15
889
原创 Cmake的基本语法操作
1)基本语法:指令(参数1 参数2....)参数使用括号括起来参数之间使用空格或分号隔开2)注意:指令是大小写无关的,但是参数和变量是大小写相关的set(HELLO hello.cpp) #定义一个变量名叫HELLO 变量的值为hello.cppadd_executable(hello main.cpp hello.cpp) #通过main.cpp和hello.cpp编译生成hello 可执行文件。
2024-09-02 13:14:59
743
原创 如何使用第三方库,Makefile概念,使用,规则,条件执行
make是一个执行Makefile的工具,是一个解释器,用来对Makefile中的命令进行解析并执行一个shell执行make这个指令在/usr/bin中,默认Linux系统中都已经安装如果没有安祖make,安装指令如下:sudo apt install make查看是否安装成功:make--version进入编译目录:执行make命令依赖关系阶段命令执行阶段。
2024-08-25 22:52:57
805
原创 Linux中库的概念,动态库,静态库
库在Linux中是一个二进制文件,它是由.cpp文件(不包含卖弄函数)编译而来,其他程序如果想要使用该源文件中的函数时,只需在编译生成可执行程序时,链接上该源文件生成的库文件即可。库中存储的是二进制文件,不容易被窃取只是产权,做到了保护作用给。库在Linux中分为两类:静态库和动态库Windows:***.lib(静态库)。***.dll(动态库)。Linux:***.a(静态库)。***.so(动态库)
2024-08-23 15:26:01
1494
原创 man手册的解析及使用方法
Linux系统提供的有关函数或指令介绍的相关帮助手册,可以在该手册中查看函数,指令的功能,说白了就是相关操作的使用说明书,一共有7章内容,主要使用前三章,第一章:shell指令相关说明,第二章:系统调用函数相关说明(重点),第三章:库函数(重要)1.文件的操作:open(),read(),write(),lseek()等等。2.进程控制函数:fork(),exit(),wait(),execl()等等。4.网络通信:socket(),bind(),listen()等等。只需要man+相关函数/指令即可。
2024-08-22 14:09:37
460
原创 Vim的学习
2.直接使用vi或vim+不存在的文件名,如果对文本内容进行更改,则保存退出后,会在文件系统上产生一个普通文件,如果没有更改数据,保存后退出,则不会在文件系统上创建该文件。VIM是Linus系统下的文本编辑器,可以对不同文本进行编辑,功能是对文件内容的编辑,保存,更改操作。yy:复制当前行的文本内容(要在插入模式在进行,没有插入这两个字的时候)2.命令行模式的作用:主要完成对文本内容整体的复制,粘贴,剪切,删除以及光标移动等操作。nyy:复制从光标所在行一直及以后的n行文本内容(n是一个具体的数字)
2024-08-12 00:06:06
1485
原创 内联函数的使用,函数重载
如果函数体代码比较多,需要较长的执行时间,那么函数调用机制占用的时间可以忽略;如果函数只有一两条语句, 那么大部分的时间都会花费在函数调用机制上,这种时间开销就就不容忽视。为了消除函数调用的时空开销,C++提供一种提高效率的方法,即在编译时将函数调用处用函数体替换,类似于C语 言中的宏展开。这种在函数调用处直接嵌入函数体的函数称为内联函数(Inline Function),又称内嵌函数或者内置 函数。
2024-07-31 16:12:06
568
原创 C++学习04day--引用
type&funcName(){}在函数返回一个引用时,则返回一个指向返回的隐式指针,当返回一个引用时,要注意被引用的对象不能超出作用域,所以返回一个对局部变量的引用是不合法的,但是,可以返回一个静态变量的引用,可变参数获取可选参数,必须通过一个va_list的对象,它包含了参数信息,这种类型的对象也称为参数指针,它包含了栈中至少一个参数的位置。C++与C语言类似,C++中函数的参数是形式参数,即是实参的拷贝,所以修改的不是实参,所以X不改变,因此我们引入引用。引用所指向的变量,类似于指针常量。
2024-07-31 11:57:55
443
原创 C++学习03day--string类
C++中提供了专门的头文件(注意不是string.h,这个是C份个股字符串相关函数的头文件),来支持string类型,string类定义隐藏了字符串的数组性质,让我们可以像处理普通变量那样处理字符串,string对象和字符数组之间的主要区别是:可以将string对象声明为简单变量,而不是数组。1)C语言中,使用strcmp,strncmp函数来进行字符串的比较,在C++中,由于将string对象声明为了简单变量,故而对字符串的比较操作十分简单,直接使用关系运算符(==,!
2024-07-25 19:58:35
790
原创 浅学单片机
与CPU相比,MCU的规模较小,集成度更高,成本更低,功耗也更低。JTAG模式是一种并行调试接口,它使用四个引脚:TDI(测试数据输入)、TDO(测试数据输出)、TCK(测试时钟)和TMS(测试模式选择)。在ST-LINK调试器中,调试端口通常指的是微控制器上的调试接口引脚,用于与ST-LINK进行通信。CH340(串口:一个一个传输,不能同时串):USB转TTL电平(TTL电平是一种数字信号电平标准,有三种状态:高电平(H)、低电平(L)和悬浮态(X)),用的是outside usart(外部通信)
2024-07-24 23:09:28
719
原创 C++学习02day——字符
内联函数(虽说调用了两个函数,用力inline之后,能只用一块空间反复调用,可以节约栈空间)(放在函数定义的地方):在C语言中,如果一些函数被频繁调用,不断地有函数入栈,会造成栈空间和栈内存的大量消耗,在C++中,为了解决这个问题,特别的引入了inline修饰符,表示内联函数。在访问连续内存空间的时候,无论是字符数组还是字符串数组,得遇到NULL才能停止,arr没有NULL,后续继续连续的访问,就会出现越界的问题而出现乱码,这与输出特性有关,不与数组的类型有关。其他进制转化为二进制:除基取余倒着读。
2024-07-24 17:56:22
826
原创 C++的学习 01day
1.cin(输入>>)和count(输出<<)详解2.常量和变量3.常见的数据类型整型字符型浮点型布尔4.其他内置函数5.注释6.转义字符C++中std命名空间是C++中标准类型对象的命名空间,因此我们需要使用输入和输出,必须引入std命名空间。
2024-07-20 11:43:48
387
原创 C语言中树的广度遍历
把根节点入队,存这个节点的索引,如果是顺序存储,那么索引值就是下标,如果是链式存储,那么索引值就是地址。由于队列只存在层次遍历,当遍历完成后,就可以释放,推荐存放在栈上。把任务能访问的孩子节点,有孩子的节点索引入队。只要队列不空,继续出队,出队就进入上一步。这里可以把之前写过的队列的接口拿过来继续使用。直到队列为空,返回退出。出队,访问出队的元素。
2024-07-19 08:42:57
170
原创 不带任何约束的二叉树(不建议用)
一个节点可能有左孩子和右孩子,如果直接从根节点开始释放,就无法找到下面的孩子节点,所以我们从下往上,先删除叶子节点,再删除根节点,这节点的删除又具有相同类似的操作,因此我们可以考虑采用递归的思路。后续自己在main函数中自行组合添加或者删除元素即可。树的节点结构:数据域+指针域(左指针+右指针)树头:根节点+计数器(计算节点的个数)emmm感觉这挺简单的我就不多说了。自己写一个函数,引用即可。自己写一个函数,引用即可。自己写一个函数,引用即可。
2024-07-18 20:20:33
288
原创 用双向循环链表实现约瑟夫环
我们要剔除一个值,但只用一个变量,在我们删除的时候,这个变量值消失,我们就无法找到这个链表,所以我们要用两个变量,记录当前值和前一个的值,循环的条件为,当前的链表中只有一个元素,2.为了使这个链表是正序的状态,应该使用尾插法(注意第一个元素中肉节点的指向)1.每一个人是一个节点,要将每个人标号,并添加到这个链表中。3.这是个环,要将最后一个元素指向头节点。第二个接口是,查看这个环,看看自己初始化是否正确。C语言中运用双向循环链表写约瑟夫环。第三个接口,开始进行游戏。
2024-07-15 20:41:22
233
原创 单向循环链表将带头指针的转化为带头节点
转化最关键的一步就是将dummy节点指向头节点,就可以把dummy节点当作头节点,接下来的操作就和带头节点的单项链表的操作一样了。将带头指针的链表转化为带节点的指针,主要是利用一个虚拟节点dummy节点;先判断要插入的位置是否在边界内,不在则直接返回。首先创建一个虚拟节点dummy节点。前面链表头节点的初始化就不说了。我们主要以插入为例,这是接口。在将p移动到pos前一个位置。现在附上表头结构和节点结构。创建新节点,并进行赋值移动。最后只要更新头节点即可。
2024-07-15 19:24:41
135
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人