- 博客(59)
- 收藏
- 关注
原创 C++ 指向类成员的指针
C++扩展了指针在类中的使用,使其可以指向类成员(数据成员和函数成员),这种行为是类层面的,而不是对象层面的。指向非静态数据成员的指针在定义时必须和类相关联,在使用时必须和具体的对象关联。由于类不是运行时存在的对象。因此,在使用这类指针时,需要首先指定类的一个对象,然后,通过对象来引用指针所指向的成员。指向类成员的指针,具有指针的形而不具体指针的实,或者,确切意义上说,不指是指针。指向类成员的指针,本质存放的不是地址,存放的偏移量。
2024-07-31 18:19:40 163
原创 C++ static关键字在类中的扩展
C++扩展了 static 在类中的语意,用于实现在同一个类,多个对象中共享数据,协调行为的目的。静态变量有全局变量的优势,又不会像全变量一样被滥用。而用于管理静态变量,就需要用到静态函数。类的静态成员,属于类,也属于对象,但终归属于类。
2024-07-31 18:19:21 157
原创 C++ const关键字在类中的扩展
C++引入的面向对象的概念之后,C 语言中的一些比如 static/const 等原有语意,作一些升级处理,此时既要保持兼容,还要保持不冲突。
2024-07-30 10:23:37 308
原创 C++类型强转
新类型的强制转换可以提供更好的控制强制转换过程,允许控制各种不同种类的强制转换。C++提供了四种转化 static_cast,reinterpret_cast,dynamic_cast和 const_cast 以满足不同需求,C++风格的强制转换好处是,它们能更清晰的表明它们要干什么。C 语言转换风格,在 C++中依然适用。
2024-07-28 12:07:13 578
原创 C++ Namespace 命名空间
语法 C++引入 namespace 的本质是对全局空间再次划分。确切的说,是对全局的函数和变量再次进行作用域打包。
2024-07-27 18:36:33 234
原创 C++ String 字符串类
/0xf55e40//hello//初始化字符串//32//32//32//world//next//字符串再次赋值s1=s2;//next//cin输入字符串//字符串会获取输入第一个空格之前的的数据//cin>>s1;//输入的数据//使用getline函数获取输入的所有数据,包括空格//输入的数据。
2024-07-27 18:36:01 497
原创 C语言-TCP通信创建流程
在服务器绑定 ip 地址与端⼝号之后, 则需要让服务器 socket 套接字设置成被动监听状态,并。首先,我们需要创建套接字,套接字是通信的基础。我们可以通过 socket() 函数来创建套接字。在服务器端调用 accept 函数之后, 则可以接收客户端的连接请求, 并创建新的套接字用于数据。在服务器端调用 listen 函数之后, 则可以开始接收客户端的连接请求, 并创建新的套接字。接收数据需要调用 recv() 函数。创建套接字之后,我们需要连接服务器。连接服务器需要调用 connect() 函数。
2024-07-26 19:18:58 414
原创 C++内联函数
C 语言中有宏函数的概念。宏函数的特点是内嵌到调用代码中去,避免了函数调用的开销。但是由于宏函数的处理发生在预处理阶段,缺失了语法检测和有可能带来的语意差错。
2024-07-26 19:12:18 161
原创 C++内存申请和释放
c 语言中提供了 malloc 和 free 两个系统函数,完成对堆内存的申请和释放。而 c++则提供了两关键字 new 和 delete;
2024-07-25 20:01:09 558
原创 从C到C++入门篇(三)引用;引用的本质
变量名,本身是一段内存的引用,即别名(alias)。此处引入的引用,是为己有变量起一个别名。int a= 500;//变量名.实质是一段内存空间的别名(int。
2024-07-25 20:00:42 786
原创 从C到C++入门篇(一)新类型和标准输入输出
C 语言中 const * ->non-const* / void * ->sometype * / type-> type均是可以的,但是在 C++中则编译通不过。
2024-07-24 18:01:57 668
原创 非阻塞IO-多路复用select函数用法及其源代码解读
/ 定义一个结构体来存储文件描述符集合void *bits;// 指向文件描述符集合的指针// 返回值和最大文件描述符数// 文件描述符集合的大小// 文件描述符表//!栈上分配的文件描述符集合,分配数组空间,⽤于存储⽂件描述符// 初始化返回值为无效参数错误if (n < 0) // 如果传入的文件描述符数小于0,则返回错误// 读取RCU锁// 获取当前进程的文件描述符表// 获取最大文件描述符数// 释放RCU锁。
2024-07-23 13:45:42 1099
原创 Golang-函数调用机制分析(值传递与引用传递)
以上就是值传递与引用传递的分析。注意其中的栈,堆等均为人为的逻辑分区,每个程序在运行过程中也未必会严格按照此进行内存的分配,这里是为了解释方便,后期在做。
2024-07-23 08:38:44 623
原创 C语言-网络编程-UDP通信创建流程
UDP 是⼀个传输层的⽆连接的协议,我们编写代码⼀般是分为两个端。⼀个我们称之为发送端,另⼀个我们称之为接收端。正常⼀般是接收端先运⾏,然后等待结束发送端发送过来的数据。
2024-07-19 08:45:26 573
原创 UDP协议
UDP(User Datagram Protocol) : ⽤户数据报协议,是不可靠的⽆连接的协议。在数据发送前,因为不需要进⾏连接,所以可⽤于进⾏⾼效率的传输。但不保证数据的可靠性。
2024-07-18 08:49:38 276
原创 网络编程-TCP 协议的三次握手和四次挥手做了什么
三次握手(Three-way Handshake) 其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包.进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常,指定自己的初始化序列号为后续的可靠性传输做准备,实际上就是服务器指定连接端口,建立TCP连接,并同步连接双方的序列号和确认号,交换TCP窗口大小信息.三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,并且进行交换TCP的信息。
2024-07-18 08:47:37 1686
原创 网络编程-TCP/IP
网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同时使用下层提供的服务网络体系结构即指网络的层次结构和每层所使用协议的集合两类非常重要的体系结构:OSI 七层模型 与TCP/IP 五层模型。
2024-07-17 19:16:08 781
原创 golang中字符串和各种int类型之间的相互转换方式
string转成int:1string转成int64:1int转成string:1int64转成string:1。
2024-07-16 18:25:37 692
原创 Golang time包
时间和日期是我们编程中经常会用到的,本文主要介绍了 Go 语言内置的 time 包的基本用法。time 包提供了一些关于时间显示和测量用的函数。time 包中日历的计算采用的是公历,不考虑润秒。
2024-07-16 18:23:34 985
原创 Linux多进程和多线程(八)多线程
线程是进程中的⼀个执⾏单元,负责当前进程中程序的执⾏,⼀个进程中⾄少有⼀个线程⼀个进程中是可以有多个线程多个线程共享同一个进程的所有资源,每个线程参与操作系统的统一调度可以简单理解成 进程 = 内存资源 + 主线程 + 子线程 +…
2024-07-09 22:40:38 723
原创 Linux多进程和多线程(四)进程间通讯-定时器信号和子进程退出信号
定时器类型:setitimer() 支持三种定时器类型(实际时间、用户态时间、用户态和内核态时间),更灵活。alarm() 只支持实际时间定时器。精度:setitimer() 支持微秒级精度。alarm() 只支持秒级精度。支持多个定时器:setitimer() 可以同时设置和管理多个不同类型的定时器。alarm() 只能设置一个定时器,后续调用会覆盖之前的定时器。
2024-07-03 11:53:54 1047
原创 Linux多进程和多线程(三)进程间通讯-信号处理方式和自定义处理函数
123456678910// 用户自定义信号1112131415161718192021。
2024-06-30 16:05:55 876
原创 Linux多进程和多线程(一)-进程的概念和创建
进程(Process)是操作系统对一个正在运行的程序的一种抽象。它是系统运行程序的最小单位,是资源分配和调度的基本单位。
2024-06-29 20:16:35 1553
原创 C语言 实现链表的各种功能
文件名:link_list.h}LNode;//初始化链表//链表是否为空//链表长度//链表头部插入元素//链表尾部插入元素//插入链表指定位置//链表删除元素头删//链表删除指定位置元素//删除链表元素尾删//链表中查找指定位置元素//修改链表指定位置元素//清空链表//销毁链表//打印链表链表是一种常见的数据结构,在实际应用中有着广泛的应用。本文介绍了链表的定义、实现、操作、测试等功能。
2024-06-29 17:18:37 472
原创 linux中find命令和exec的强大组合用法
Find 是一个已经非常强大的命令,用于根据许多条件搜索文件。exec 命令使您能够处理 find 命令的结果。我在这里分享的例子只是一瞥。find-exec 命令组合在一起为您提供了在 Linux 命令行中执行操作的无限可能。find 和 exec 命令。
2024-06-28 19:23:33 1094
原创 AUTOSAR的基础软件和功能
管理非易失性存储器的读写操作。实现对EEPROM的抽象,使上层应用无需关心具体存储硬件的细节。管理闪存的读写和擦除操作。提供API用于上层软件对闪存的访问。管理输入输出硬件,包括传感器和执行器等。包含对信号的采集和处理功能。
2024-06-27 18:42:43 319
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人