- 博客(23)
- 收藏
- 关注
原创 网络的封包与拆包
关键概念:最大传输单元,由网络类型决定以太网MTU=1500字节(从IP头到用户数据)静态参数,仅与网络类型相关最大分段大小,指纯用户数据部分以太网中MSS=1460字节(当MTU=1500时)动态参数,受网络线路质量等因素影响协议开销:头部信息属于传输开销实际有效数据仅占部分比例优化传输应考虑减少协议开销。
2025-07-03 10:13:19
476
原创 网络的历史与分层解释
(1)1968年6月DARPA提出“资源共享计算机网络”,目的是让DARPA的所有电脑互联起来,这个网络就是ARPAnet,即“OSI模型相关的协议和少使用,但模型本身很实用,其是一个理想化模型,并且没有完全实现。(4)1983年ARPAnet上停止使用NCP,互联网上的主机全部使用TCP/IP协议。- 用来检测网络传输中差错的传输协议TCP(网络接口与物理层:通过不同的硬件驱动,最终像上层提供接口,屏蔽硬件差异;),不能互联不同类型的计算机和不同类型的操作系统,没有纠错功能。网络层:实现端到端的传输;
2025-07-03 09:49:57
256
原创 第12章 运算符重载
运算符重载实现的是编译时多态,是对已有的运算符赋予多重含义,使同一个运算符作用于不同类型数据时,导致不同类型的行为。运算符重载是为了实现对自定义的数据类型的运算必须编写程序来定义某个运算符作用在自定义数据类型上时所需要进行的操作。C++中每一个运算符都对应着一个运算符函数,在实现过程中,把指定的运算符转化成为对运算符函数的调用,而表达式中的运算对象转化为运算符函数的实参,这个过程是在编译阶段完成的。如下图说示:因此,可以将运算符重载看作是一种特殊的函数重载。
2025-07-01 15:30:57
778
原创 第十一章 多态
多态(polymorphism),从字面理解是“多种形态,多种形式”,是一种将不同的特殊行为泛化为当个特殊记号的机制。多态从实现的角度可划分为两类:(1)编译时的多态:编译过程中确定了同名操作的具体操作对象(2)运行时的多态:程序运行时才动态确定操作所针对的具体对象虚函数的定义是在基类中进行的,即把基类中需要定义为虚函数的成员函数声明为virtual。virtual <函数类型><函数名>(参数表)函数体;当基类中的某个成员函数被声明为虚函数后,就可以在派生类中重新定义。在派生类中重新定义时,
2025-04-26 21:29:20
942
原创 第十章 继承与派生
类的继承是新类从已有类那里获得特性,从已有类产生新类的过称为类的派生。已有的类称为基类或父类,派生出的新类则称为派生类或子类继承主要功能:(1)使父类与子类之间建立起逻辑上的层次关系(2)使一个派生类获得其父类的属性和行为单继承是一个子类只有一个直接父类,多继承是一个子类有多个直接父类。父类与子类之间的关系:(1)父类是对子类的抽象,子类是对父类的具体化,是父类的延续;(2)子类是父类的组合,多继承可以看作是多个单继承的简单组合;(3)公有类型的子类的对象可以看作父类的对象处理。
2025-04-20 22:09:09
1805
原创 第九章 类和对象
在程序中,属性可以抽象成数据,行为可以抽象成函数。因此对象构成如下图所示:类是指整个一类事物,一个类定义了一个模板。类对数据、处理数据的方法(函数)进行了封装,是对某一类具有相同特性和行为的事物的描述。类和对象的关系如下图:类的属性又称为数据成员,用来表示类的信息。类的方法,又称为类的成员函数。成员函数主要处理类的数据成员,其声明方法和普通函数的声明方法相同,如下:类体中的声明定义:构造函数的·声明和定义与普通成员函数的声明和定义类似,如下:(1)类体中声明并定义构造函数。
2025-04-12 12:04:46
966
原创 第八章 复合数据类型
结构体定义:一个可以包含不同数据类型的结构,用户可以自定义数据类型,在结构体中可以声明不同的数据类型。结构体等复合数据类型使用前必须先定义其中包含哪些成员,其长度为多少,再进行具体的结构体变量的定义,最后在程序中使用。定义一般形式:结构体也可以嵌套定义,即在结构体定义中,不但可以包含基本数据类型,还可以包含已定义的结构体数据类型。声明一个结构体时,结构体中的成员数目不宜过多,若成员数目过多结构体将不宜管理。联合与结构体的本质区别:枚举用于解决集合类问题,其所描述的状态为有限的几个。
2025-04-07 11:59:11
949
原创 第七章 指针与引用
计算机的数据都是存储在内存中的,内存是按字节排序的存储空间,每个字节都有一个编号,被称为地址,程序中用到的数据与定义的变量都存放在这一个个字节中,不同数据类型的数据与变量占用的字节数不同,习惯上将某个变量占用的字节数称为内存单元指针就是就是记录这些地址的变量,而指针的类型表示指针指向地址存储的数据类型。指针是一种复合数据类型,基于该类型声明的变量称为指针变量,该变量存放在内存中的某个地址。类型标识符 *指针名;int *p;注意:p是指针变量,而不是*p。其中p与a是指针变量,b是普通变量。
2025-03-31 16:27:07
2022
原创 第六章 函数
函数的声明又称为函数原型。函数声明作用:(1)使编译器正确处理返回值;(2)使编译器可以检查输入参数的数目;(3)使编译器检查输入参数的类型,如果类型不正确,则对类型进行隐式转换。函数声明一般形式:返回类型 函数名(参数列表);注意:在函数声明和定义中,不能没有参数列表。等同 int functio(void);函数声明时(不是定义)等同 int functio(int a,int b);函数定义又称函数实现。一般形式:返回类型 函数名(参数列表){}
2025-03-28 13:31:31
742
原创 第五章 数组
数据类型 数组名[常量表达式];int a[10];注意:常量表达式只能是常量或为非运行时确定的固定值的表达式,不能是变量。//后几个初始化为0//数组长度为5一般形式:int a[10][10]
2025-03-26 10:49:32
886
原创 Linux进程间通信方式
值永远就不会变,如果fork()创建一个key之后,pathname文件删除并重新建立同名称的文件,得到的文件i节点不同,在使用fork()得到的key与原来的不同,就不能访问同一个共享内存。(3)如果信号量的值不大于0,则表明临界资源正在被其他进程占用,阻塞当前进程直至信号量的值为正数,唤醒等待此临界资源的阻塞进程队列的队首进程。进程的亲缘关系通常是指父子进程关系。共享内存是System V的一种进程间通信机制,它的存在不依赖于使用它的进程是否存在,可以把它看作是系统的一种IPC资源。
2025-03-13 11:45:45
1647
原创 第一章 C++基础
1.1.1 C++发展历程C++语言源于C语言1.1.2 C++语言特点1.1.3 C++程序开发基本过程C++源程序预编译处理(*.cpp)编译优化程序(.s、*.asm)汇编程序(.obj)链接程序(*.exe)
2025-03-11 11:06:49
356
原创 TIM程序设计
计数器的周期为500ms,比较输出的周期为1000ms。三、TIM的比较输出(OC)与脉冲捕获。二、TIM编程配置与应用。四、脉冲输出模块的使用。
2025-02-16 15:52:11
239
原创 ADC结构编程配置与应用
四、EX05光敏和红外热释电模块。5、注入通道(插队快速测量)三、EX02模拟电压输出模块。2、常规转换通道配置。(2)DMA方式转换。
2025-02-16 12:16:13
250
原创 IIC接口及其应用
它的电路连接如图所示。WC是写保护引脚,WC接地时,对24C02芯片可读可写。开发板上有一个I2C接口的EEPROM芯片AT24C02,是ATMEL公司的产品。因为其他一些厂家的芯片与AT24C02引脚和功能完全兼容,一般就统称为24C02。:先向0x94地址写入两位数据,分别是0x24与0x0B(对应不使用时钟中等重复率),等待一段时间,再从0x94地址读取两位数据,分别是温度的高8位M与低8位L(由于E0、E1、E2接地,为低电平,所以A2、A1、A0都为0。一次写的数据不能超过页的边界,防止溢出。
2025-02-15 19:47:28
482
原创 中断系统的编程与应用
每个中断源都需要被指定这两种优先级,就需要有相应的寄存器位记录每个中断的优先级;指定中断优先级的寄存器位减少到4位,这4个寄存器位的分组方式如下。
2025-02-13 15:38:59
236
原创 STM32WLE5CCU6--CubeMax项目建立(按键-LED点亮)
由于LED低电平点亮,所以将三个LED的引脚输出电平设置成Hight,即默认LED熄灭。(Multi-Speed Internal oscillator)是一种内部时钟源)4.RCC高速与低速时钟先保持Disable。将按键设置成上拉输入(Pull-up)3.设置DEBUG接口为SW接口。10.keil打开项目编写代码。6.根据原理图设置引脚。
2025-02-11 14:13:33
472
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅