自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 [笔记]ASCLL码表(48 “0”,65 “A”,97 “a”)2022.3.12

ASCLL表格 ASCLL码 ASCLL值 对应字符 0 NUT 1 SOH 2 STX 3 ETX 4 EOT 5 ENQ 6 ACK 7 BEL...

2022-03-22 12:25:04 1745 1

原创 12月3日笔记C++8_继承,虚继承

面向对象的基本特征: 封装 继承 多态 在实现世界中,任何一个概念都不是孤立存在的,都有与之相关的概念,这些概念之间会存在各种关系 面向对象模拟现实世界,我们用类来表示概念,所以,概念之间的关系,就转换成了类与类之间的关系。

2021-12-20 15:29:40 621

原创 12月2日笔记C++7_运算符重载典型应用-迭代器

运算符重载典型应用-迭代器迭代器模式: 在不暴露一个对象的内部实现的情况下,提供一种方式,能顺序访问对象的数据元素的 一般情况下,把能存放其它对象的对象,称为 容器对象,如链表、数组等 在C++中,可以把容器的遍历机制封装成一个对象,称之为 迭代器 C++的容器类型都应该提供自己的迭代器类型,其中封装了一个指针和一组运算符函数 同时,容器类型 还需要提供begin和 end 两个专门的接口 通过 begin() 获取容器的首元素迭代器,通过end()确定...

2021-12-02 10:37:44 490

原创 11月30日笔记C++6_异常 exception,运算符重载 ,

1、可以重载大多数运算符,但有些不能,如: . ?: :: sizeof 2、只能重载已有运算符,不能创建新的运算符 3、重载的运算符应该要与它的原始语义保持一致,如加法运算中不能实现减,不能修改操作数等 4、以下运算符只能重载为类的成员函数 = () [] -> 5、输入输出运算符只能重载为友元函数 6、只有当操作数中至少有一个自定义类型时,才需要重载运算符。

2021-12-02 10:08:57 736

原创 11月29日笔记C++5_布尔类型 bool,字符串 string,引用,对象拷贝,右值引用,对象的移动

1、布尔类型 bool bool是C++的基础类型之一 bool用于表示逻辑概念,只有两种值,即真和假 在C++中,用true表示真,用false表示假 bool的值占用一个字节的存储空间。 (C++中不需要额外头文件,直接用<iostream>头文件) 主要用于条件判断及函数返回类型。 例: 判断一个链表是否为空 bool isEmpty(); bool ok = isEmp...

2021-11-30 17:21:46 803

原创 11月29日笔记C++4_类的空间存储,this指针,静态成员,友元 friend

1、简单对象的内存布局 对象的创建: Point pos(0, 0); // 如果pos是局部对象,栈区 Point pos(0, 0); // 如果pos是全局对象或静态的,静态存储区 Point * p2 = new Point(100, 100); // 堆区(自由存储区) 问:假设有以下主函数, 在不修改主函数的情况下,在hello world的前后分区输...

2021-11-29 16:23:17 89

原创 11月29日笔记C++3_类型转换,动态内存 new/delete,析构函数

1、C++中的类型转换:static_cast <type> (expression),const_cast <type> (expression),reinterpret_cast <type> (expression),dynamic_cast <type> (expression)2、动态内存 new/delete3、析构函数

2021-11-29 15:16:31 369

原创 11月29日笔记C++2_函数重载,默认参数,内联函数,构造函数,构造函数的成员初始值列表

1、标准C++类的组成 头文件 .hpp 类的声明 #ifndef POINT_HPP#define POINT_HPP .........#endif 源文件 .cpp 类的定义 如果需要使用某个类型,只需要包含它的头文件即可。2、C++中函数的新特性 函数重载 overload 所谓函数重载,指在同一个作用域中,定义函数名相同,但是参数列表不相...

2021-11-29 10:08:45 211

原创 11月26日笔记C++1_历史,基础,域,命名空间,类与对象,三大特征

C++支持多种编程风格:面向过程, 面向对象, 泛型编程.面向对象的三大基本特征: 封装,继承,多态.类与对象 类 class (自定义数据类型) 对象 object (实例化对象)

2021-11-29 09:46:51 156

原创 11月24日笔记sqlite3数据库2_C/C++程序去操作数据库

1.通过C/C++程序去操作我们的数据库 数据库对C/C++的编程接口口 如何通过API含接口 去执行SQL语句 Sqlite3两大对象和八大函数 两个对象 数据库连接对象(the database conncetion Object) 数据库连接句柄/数据库自己的文件描述符 表示一个已经打开了的数据库 sqlite3 * 代表者一个打开的数sqlite3数据库文件 ...

2021-11-25 20:15:30 658

原创 11月24日笔记sqlite3数据库1_SQL命令

1.关系型数据库语言SQL SQL(Strcutured Query Language)结构化的查询语言 是一种通用的 功能强大的关系型数据库语言 SQL包含六个部分 1.数据查询语言 DQL Data Query Language 从数据库中查询、获取数据(SELECT) 2.数据库操作语言 DML Data Manipulation Language 用来操作数据库中的数据的 增,删,改 3.事物处理语言 ...

2021-11-24 20:26:02 514 1

原创 11月19日笔记数据库0_基础,安装与移植

数据库是什么?如何安装和移植我们的数据库如何在命令行中使用SQL语句操作数据库如何在C/C++程序中操作数据库1.数据库(DataBase)与数据库管理系统(DBMS DataBase Management System) 一个存储数据(电子化表格)仓库 数据库本质上是一个电子化的文件柜-》存储电子文件的工具,用户可以对文件中的 数据进行增删改查等操作 数据库管理系统是管理数据库的,对外提供了操作数据的结构 数据库管理系统是数据库设计的计算软件 一般都是对...

2021-11-24 15:00:09 571

原创 11月17日笔记网络编程5_多路复用(select,poll,epoll)

多路复用:监听多个文件描述符是否就绪(read/write/error)selectpollepoll

2021-11-19 15:32:02 746

原创 11月17日笔记网络编程4_unix域协议及模板

1.unix域协议 IPC方式之一 socket 进行进程间通信 利用 socket编程接口 来实现 本地进程间通信 有自己协议簇 unix域协议:AF_UNIX / AF_LOCAL socket套接字 SOCK_STREAM 面向字节流 ——》tcp SOCK_DGRAM 面向数据报 ——》UDP unix域协议 编程接口及流程和 ipv4 协议族一样 ...

2021-11-17 11:36:38 285 1

原创 11月17日笔记网络编程3_UDP套接字编程及广播,组播

1.UDP套接字编程 UDP传输层的一个协议 面向无连接 数据报的传输层协议 无连接 不可靠的一种协议 既然不可靠为什么要用UDP 1.实时应用 2.在网络环境比较好的时候 UDP的效率更高。 可以在应用层保证你的数据可靠 sendto recvfrom 你要知道谁给你发了消息你才好回信 练习: 1.DNS Domain Name syatem域名解析系统 ...

2021-11-17 11:17:53 1289

原创 11月17日笔记网络编程2_Socket套接字及TCP\UDP

socket套接字,创建,端口,bind,listen,accept,connect , sendto,recvfrom, close/shutdown

2021-11-17 10:43:17 913

原创 11月17日笔记网络编程1_基础知识

(1)网络协议层次模型 OSI七层模型 TCP/IP四层模型 (2)网络数据包的发送过程 "封装和拆包" (3)了解一下概念 交换机 路由器 网关 (4) IP地址和mac地址 (5) 端口号 IP地址+传输层协议(TCP/UDP)+端口号

2021-11-17 09:49:36 1533

原创 11月12日笔记并发7_线程池(结构+模板)

1.线程池 我们都知道,线程是进程的一个执行分支 操作系统上 以现场为单位进行调度 =》理论上而言 一个进程拥有的线程越多 其处理效率越高 但是 实际上 收操作系统,硬件设备等影响 一个进程创建的线程数量和处理效率并不是成正比(线性关系) 因此 一般情况下 线程的创建不能 "为所欲为" 我们之前的代码 如果你创建成千上万个线程同时拷贝 那么你的系统就会卡死 因此为了解决这种BUG 我们认为的参考C++,引入了线程池的概念 ...

2021-11-17 09:24:50 457

原创 11月10日笔记并发6_线程(线程函数,线程创建,退出,属性,互斥锁,条件变量)

typedef void*(*start_routine_t)(void*);int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);void pthread_exit(void *retval);int pthread_setcancelstate(int st...

2021-11-10 16:28:05 265

原创 11月5日笔记并发5_信号量(信号量集的id,PV操作,有名无名信号量,单个信号量[POSIX sem],无名的销毁)

int semget(key_t key, int nsems, int semflg);int semctl(int semid, int semnum, int cmd, arg);int semop(int semid, struct sembuf *sops, size_t nsops);int semtimedop(int semid, struct sembuf *sops, size_t nsops, const struct timespec *timeout);sem...

2021-11-08 19:53:44 352

原创 11月3日笔记并发4_共享内存 (key 内存映射 解映射 控制[删除它])

1.共享内存 共享是进程间通信的一种方式 多个进程共享一段内存 由于多个进程共享一段内存,这段内存既是你的,也是我的 我往这块内存中写数据 实际上就是往你的内存中写数据 比其他的IPC(pipe FIFO messages)s少了一个copy内存 的过程 共享内存的效率更高 "随内核持续性" 实现的方式 在内核中开辟一段共享内存 其他进程通过映射的方式 获取这段内存的引用(指针) ...

2021-11-05 10:03:40 209

原创 11月3日笔记并发3_信号

1.信号 信号 是进程间通信的一种方式,这种方式没有传输数据 在内核中传递的是一个信号(整数) 信号的表示是一个整数 不同的信号值 代表不同含义 当然用户也可以自定义信号 既然是自定义的信号 那么含义也有程序员来解释 Terminate 终止 Signal Value Action Comment ───────────────────────...

2021-11-03 15:06:52 101

原创 11月1日笔记并发2_IPC_管道

1.IPC Internal Processes Communication 进程间通信 进程间进行数据交换 可以直接定义一个全局变量? 不可以,因为进程间的地址空间是独立 所以 如果两个进程要进行通信,必须把数据放在一个 双方都可以访问地方 文件 可以 文件在文件系统(硬盘),大家都可以访问 但是速度太慢了 =》 在操作系统内核中开辟一块空间(某种机制),进程去访问它 ...

2021-11-01 20:13:46 93

原创 11月1日笔记并发1_进程

0.问题引入 程序 = 数据结构 + 算法 数据:用来表示人们思维对象的抽象概念的物理表现叫数据 而数据处理的规则叫操作(指令) 对某一个优先数据集合所实行的,目的在于解决某一个问题 的一组有限指令集合,称之为计算 (1)顺序执行 一个程序执行完毕之后,才能执行下一个程序 例如一个程序分为三个步骤 输入数据-》计算-》写回文件 缺陷 CPU利用率非...

2021-11-01 16:21:23 107

原创 10月25日笔记系统IO_3目录的读取

0.问题的引入 在linux下面 目录也是可以用open去打开, 但是试图read一个目录的时候 会报错 Is a directory 既然read不能读目录,那要怎么去读里面内容?1.目录与普通文件的区别 在Linux下面,任何一个文件要存在都必须有一个inode 普通文件会有一个inode 目录文件会有一个inode 设备文件会有一个inode ........ 普通文件的内容 "文件内容" 但是...

2021-10-25 16:27:24 87

原创 10月22日笔记系统IO_标准IO

1.为什么要用标准IO 在每个操作系统下面,对文件的管理和接口是不一样的!!! window WinOpen.... linux open... 这样会导致跨平台或者移植带来很大的麻烦 C语言的标准委员会 就觉得他们有责任 有义务来一统江湖 统一文件操作的接口=》标准IO库 主要是统一对文件操作接口 文件:普通文件和二进制文件 普通文件 以字符ASCII码来解析文件 .txt .c ...

2021-10-22 19:50:50 209

原创 10月22日笔记系统IO_2目录

1.umask掩码umaskNAME umask - set file mode creation mask umask设置一个文件创建时的掩码 umask设置权限位中为1的bit 创建文件时候不能指定 111 111 101 000 000 010=>002SYNOPSIS #include <sys/types.h> #include <sys/st...

2021-10-22 18:36:35 83

原创 10月21日笔记系统IO_1文件打开操作(rwx,r w lseek)关闭

1.开发分类 1.1 “裸奔” APP ———————————————— hardware(硬盘) 好处 简单 可以直接操作硬件 坏处 必须要懂硬件 同时还要会写程序 没有并发 不能同时运行多个任务 SuperLoop 1.2 OS Operation system APP ————————————————...

2021-10-21 20:32:47 320 2

原创 10月15日笔记交叉开发makefile

1.工程 对于开发一个项目而言,远远不是一个函数或者一个文件能够完成的 因此,在进行项目开发的时候,我们需要搭建好一个项目的目录 来管理我们的文件,对文件分类 项目的目录基本框架 project_name/ 项目目录的名称,这是一个总目录,下面所有东西都在这个目录下面 一个目录就代表这一个项目 src/ 源代码目录 用来存放项目中的.c文件 ...

2021-10-15 19:55:33 119

原创 10月15日笔记交叉开发库

所有的事情都是有可能的 只要给我一个中间件(库) 库是一种代码的二进制封装形式 为了实现代码的复用 以及方便开发 动态库 libXXX.so(xxx是库的名字,lib是前缀.so是后缀) 静态库 libxxx.a1.动态库 1.编辑动态库源码 包含 .c和.h 每一个.c对应一个.h 不会有main函数 2.生成动态库 (arm-linux-)gcc -shared -fpic 文件列表 -o libxxx...

2021-10-15 19:13:11 60

原创 10月15日笔记交叉开发gcc编译过程和GDB调试工具

编译命令,用来将指定的.c文件编译为对应平台可以运行的程序文件 编译是不是一步到位呢? 并不是 gcc/arm-linux-gcc编译包含四个步骤 编译时是一个文件一个文件编译的 1.预处理(preprocessing) 用来处理代码里面以‘#’开头的行 1.1 #include 预处理的时候,会将包含的.h文件的内容展开(直接复制)到当前的位置 ...

2021-10-15 17:20:10 155

原创 10月14日笔记交叉开发开发板连接,远程登录和tftp服务器配置

1.开发板的链接 电源: 网线:不用的时候可以不接 串口:用来开发板通信 你们使用SecureCRT的界面是你们开发板的终端界面 右键此电脑 -》管理-》设备管理器-》端口 看看下有没有名字: USB_SERIALCH340(COMx) COMx就是开发板的串口端口号 x=1,2,3,4,5... SecureCRT链接开发板 1.打开软件 选择快速链接 2.协议 Serial 选择后 界面会发生改变 端...

2021-10-15 11:34:02 2346

原创 笔记例题数据结构二叉树

10月13日 1.二叉树的遍历 (1).写出下列图中的二叉树的遍历顺序,包括先序,中序,后序先序:中序:后序:知识点: 先序:根左右 中序:左根右 后序:左右根答案:先序:ABCDEFIGJH中序:BDCAIFJGHE后序:DCBIJHGFEA...

2021-10-13 16:02:30 317

原创 10月12日笔记数据结构图

本文具体代码都在第一个的代码上面进行的相应修改而成1.图的基本概念 定义:图(Gragh)是一种非线性化的数据的结构 Gragh = (V,R) 其中V = {Vi|Vi属于datatype }是图中元素Vi(顶点 Vertex ) 的集合 当n = 0; V是空集 R = {<Vi,Vj>|<Vi,Vj>属于V...

2021-10-12 18:48:50 144

原创 8月27日笔记数据结构树

1.树的概念 树是一种非线性结构(一对多的关系),一组数据除了一个节点(根节点,没有前驱节点)外, 其余的任意节点有且仅有零节点或多个节点,我们把这种特殊的关系,称为树状关系,俗称一对多的关系 2.生活中如何描述树状关系 公司的人员架构 家族的族谱 学校的组织 3.树的逻辑关系: 树是由若干个节点组成的分支,每个节点都有可能组成一颗树 1.节点的度: 节点拥有的子树的数量,称之为该节点的度,度为0的节点称为叶子节点或者终端节点 ...

2021-08-28 14:50:45 116

原创 8月26日笔记数据结构队列

什么是队列? 队列是一种特殊的线性表,特殊在于只能固定在两端工作,尾插,头取1.队列的操作方式: 1.队头,可以删除节点的一端 2.队尾,可以插入节点 3.插入数据,只能从队尾插入,对应的接口 InQueue() 4.删除数据,只能从队头删除,对应的接口 OutQueue() 5.取队头, 获取队列的第一个元素,对应的接口为 GetHead()其实队列就是一个特殊的单向链表2.队列的存储方式: 顺序存储(数组),链式存储 3....

2021-08-28 14:36:01 100

原创 8月26日笔记数据结构栈

什么是栈?1.栈是一种逻辑结构,特殊的线性表,只能在一端操作 栈的逻辑特性是 : "先进后出" "后进先出" 2.栈结构 1.栈顶,可以进行放数据(入栈,压栈)和取数据(出栈,弹栈)的一端 2.栈底,栈顶的反端,是不可以取数据的 3.入栈:将数据从栈顶存放到栈中 函数名 Push() 4.出栈:将数据从栈顶中取出 函数名 Pop() // 函数命名方式要注意,不要和系统的冲突,最好用大小写命名 5.只取栈顶元素,但不出栈,函数名为top()...

2021-08-28 14:22:02 263

原创 8月25日笔记数据结构双向循环链表

表的介绍都在前面单向循环链表的基础上展开基本构造(特点):// 将此链表设置为双向循环链表 if(head->nodeNumber != 0) { head->last->next = head->first; head->first->prev = ...

2021-08-25 20:06:11 146

原创 8月25日笔记数据结构单向循环链表

链表的介绍都在前面双向链表的基础上展开基本构造(特点):// 更新节点数 head->nodeNumber++; // 将链表设计为单向循环链表 if(head->nodeNumber != 0) { head-...

2021-08-25 19:52:02 167

原创 8月25日笔记数据结构(补10)双向链表

链表的介绍都在前面带头节点单向链表的基础上展开基本构造(特点):// 定义数据节点struct node{ dataType data; // 数据域 struct node *prev; // 指向上一个节点的地址 struct node *next; // 指针域,存放(指向)下一个节点的地址};//----------...

2021-08-25 19:31:51 149

空空如也

空空如也

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

TA关注的人

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