- 博客(113)
- 收藏
- 关注
原创 一文读懂回调函数
在遇到比较抽象的概念时,我们直接从定义入手,比通过使用不恰当的比喻来理解要容易得多。以函数指针作为一个函数的参数,这个作为参数传递的函数就叫回调函数,这个动作称为回调。如下:为函数指针定义了别名ProcessFunc函数的参数中,使用了形参名为func的函数指针,func就叫回调函数。当代码执行时,这个动作就叫做回调。同时,以下给出其他资料的定义,方便大家理解:百度百科:回调函数就是一个通过函数指针调用的函数。
2025-11-21 17:38:25
751
原创 一文读懂桥接模式与NAT模式
我们日常使用的主机操作系统多为 Windows 或 Mac,而学习 Linux 运维、开发跨系统程序时,常需通过 VMware、VirtualBox 等工具搭建虚拟机。虚拟机要联网(如下载软件、与其他设备交互),就需要选择网络模式 —— 最常用的便是桥接模式与 NAT 模式。本文将拆解两种模式的核心差异、适用场景及实操步骤,帮你快速选对模式。虚拟机的桥接模式与NAT模式,核心区别在于“是否让虚拟机获得独立网络身份”——桥接模式让虚拟机成为局域网内的独立主机,可直接与外部设备交互;
2025-08-31 23:10:03
1825
原创 vscode远程连接+免密登录
进入到ssh目录.这个目录注意.我们是链接root所以这个家目录应该是root。在无法联网的环境中,首先你需要在有网络的环境下下载所需的插件。# 新建文件用来存放公钥,如果你已经有这个文件了,就不用创建了。# scp [本机文件] [用户名]@[IP]:[存放目录]# 然后将你的windows公钥追加到这个文件中即可。在扩展面板中检查你安装的插件是否可见和启用。在扩展面板(左侧栏的四个方块图标)上点击。运行以下命令(假设你已经安装了。公钥:id_rsa.pub。进入.ssh文件夹。私钥:.id_rsa。
2024-11-08 19:36:05
1194
原创 L-ink复刻笔记(记录)
最近想要复刻一下稚晖君的小卡片,因此来学习一下。1.ST25DV作为NFC的PHY通过I2C总线和STM32通信,主要作用有两个:能量采集以及NFC通信。注意,ST25DV只是负责和手机进行NFC通信,而不负责IC卡的读写功能,因为ST25DV只支持ISO 15693的RFID协议,而我们常用的IC卡(M1卡)是ISO 14443协议的,所以并不能直接使用这颗芯片进行IC卡模拟。2.IC卡的模拟功能这一版中实现得比较简单,就是直接集成了多颗UID芯片(很便宜,1~2元一片),然后和ST25DV共用N
2022-02-09 20:41:59
7716
原创 0202-0208编程心得
避免依赖非 O(1) 的 size 实现带来性能隐患;所有标准库 / 自定义容器判空强制使用。,编码规范和代码评审中核查该规则;为 O(1),并在注释标注复杂度。
2026-02-09 18:45:20
335
原创 0126-0201编程心得
窗口单位变革意味着判定方式需要与新单位属性高度耦合,必须围绕“时间”设计窗口滑动、数据清理逻辑。抽象基类应只承担统一接口职责,普通虚函数则鼓励复用,但全部纯虚函数必须被派生类实现以可用。只有将“先判空”融入条件中,才能从根本避免容器越界、空指针等常见段错误。一篇文章:重载输出运算符<<与Print。
2026-02-01 21:27:57
32
原创 重载输出运算符<<与Print
如果对于只有一个类来说,使用重载输出运算符<<要优于Print()而对于继承类来说,最佳实践通常是同时使用Print()和重载输出运算符。operator<<不能声明为虚函数(它不是成员函数)基类指针调用时会发生静态绑定,而非动态绑定需要为每个派生类重载operator<<,破坏了多态性。
2026-02-01 15:52:43
534
原创 0119-0125编程心得
实际设计中,采用“数组 + 邻居列表”方案,每个节点维护包含邻居ID及相关属性(边权、时延等)的邻居列表,可灵活优化存储与更新。ns3的AODV头部类通过Print方法实现统一输出接口,而不是用友元operator<<,这样可以利用继承体系下的多态性和良好的封装性。扩展hello报文设计中通过添加扩展类,将原内容作为头部,组合扩展字段而非继承——即识别header与extension,保持结构扁平,并让扩展可插拔,避免深度嵌套,体现组合优先和结构性思维。,导致接收引用返回值时产生了拷贝,没有操作到原对象。
2026-01-25 20:31:25
371
原创 一文读懂字节序
在计算机网络中,为了能够让通信双方能够"听懂"对方在说什么,需要一套约定俗成的规则,也叫通信协议。而字节序是数据在计算机内存或网络传输中,字节的排列顺序规则。
2025-11-27 17:03:15
347
原创 使用VSCODE调试使用CMAKE生成的C++代码
2. 之后会在.vscode文件下面生成launch.json文件, 关键在于program字段以及cwd字段,一定要指明正确的路径。3. 为了能够正确的添加断点,在CMakeLists.txt中添加以下内容。1. 打开vscode工作目录,选择运行,点击添加配置。
2024-11-20 21:12:25
312
原创 《C++ primer》学习笔记 持续更新ing
2.使用C库时避免使用.h而是前面加c,例如4.凡是使用了迭代器的循环体,都不要向迭代器所属的容器添加元素。3.尾后迭代器就好像dummy_tail。1.最好不要在.h中使用using。
2024-04-03 11:32:22
199
原创 大模型对研究方向的建议
2. **云原生架构:** 云原生架构是一种利用云计算平台的优势来构建应用程序的方法。6. **边缘计算架构:** 边缘计算架构是一种将计算资源和数据存储推送到网络边缘的方法,以减少延迟并提高性能。1. **微服务架构:** 微服务架构是一种通过将应用程序拆分成小型、自治的服务来构建系统的方法。4. **服务导向架构(SOA):** 服务导向架构是一种通过将系统拆分成可重用的服务来构建系统的方法。5. **事件驱动架构:** 事件驱动架构是一种基于事件和消息传递的系统设计方法。
2024-04-01 17:12:28
343
原创 记一次合作比赛后的反思
1.多人合作需要考虑沟通成本,不愿意沟通的人最好不要选择其成为合作对象,不然甚至可能会达到1+1<1的效果。3.如果确定自己为主导,那么框架一定要自己亲手搭(即程序主体结构)4.如果需要代码合作并且不能开源,一定要先把gitlab搭好。1. 动手能力还有待增加,在扩展知识面的同时,更需要注重实践。2.战线过长的比赛不要找有拖延症的队友。具体在于实现一定要考虑好情况。
2024-03-23 21:40:14
400
原创 gcc、g++与gdb
gcc,g++ 区别与gdb调试 - 厚德载物的文章 - 知乎 https://zhuanlan.zhihu.com/p/564454584。gcc:默认只链接C库,链接C++库需要添加-lstdc++g++:不管编译c还是c++都用c++标方式编译。
2023-06-30 20:25:46
202
原创 C++ STL三组件
容器(Containers) 容器是用来管理某一类对象的集合。C++ 提供了各种不同类型的容器,比如 deque、list、vector、map 等。 算法(Algorithms) 算法作用于容器。它们提供了执行各种操作的方式,包括对容器内容执行初始化、排序、搜索和转换等操作。 迭代器(iterators) 迭代器用于遍历对象集合的元素。这些集合可能是容器,也可能是容器的子集。
2023-06-11 17:44:21
176
原创 一个简单的基于WINDOWS平台的套接字通信
一、流程图二、注意事项1.连接ws2_32库2.使用inet_addr函数报错解决三、代码服务端:#include "stdio.h"#include "stdlib.h"#include "winsock2.h"int main(int argc, char* argv[]){ WSADATA wsaData; SOCKET hSerSocket,hClntSock; SOCKADDR_IN servAddr, ...
2022-05-19 21:18:16
423
原创 网络字节序与地址变换
在通过网络传输数据时约定统一方式为大端序1.字节序间的转换//h代表host主机字节序 n代表net网络字节序 s代表short l代表longunsigned short htons(unsigned short);unsigned short ntohs(unsigned short);unsigned long htons(unsigned long);unsigned long ntohs(unsigned long);2.字符串与网络字节序间的转换字符串转网络字节
2022-05-19 20:28:33
353
原创 一个简单的基于LINUX平台的套接字通信
一、流程图二、代码服务端:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <unistd.h>#include <arpa/inet.h>#include <sys/socket.h>int main(int argc, char *argv[]){ int serv_sock; int clnt_sock; st
2022-05-08 17:27:53
160
原创 pt实验验证--同一子网下IP地址相同
一、实验拓扑二、实验操作1.按照拓扑所示配置好相关设备2.所以先设置PC0的IP为192.168.1.1去ping默认网关,再将PC1的IP设置为192.168.1.1观察默认网关的arp表。再用PC0ping默认网关,分析结果。三、实验现象加分析1.实验操作:PC0 ping 默认网关实验现象:PC0能收到ICMP报文应答,网关的arp表中记录了192.168.1.1与AABB.CCDD.EEFF的映射2.实验操作:更改PC1ip ping默认网关P
2022-05-04 20:54:39
724
原创 pt实验--同一子网下MAC地址相同
一、实验拓扑二、实验操作1.按照拓扑所示配置好相关设备2.在仿真模式下,PC0与PC1同时ping网关,观察ICMP报文的收发三、实验现象PC1的ICMP报文全部接收PC0的ICMP报文丢失了一份四、现象分析对于交换机来说,在MAC表中,相同的MAC地址只能对应一个端口,即MAC表里面不会有相同的MAC地址。PC1的ICMP报文后发后至,将MAC地址AABB.CCDD.EEFF对应的端口号由f0/1更改为了f0/2.对于路由...
2022-05-01 21:49:28
3081
原创 基于CentOS7系统搭建云上博客
实验地址:阿里云试用中心_云服务器试用_企业试用场景_开发者云产品试用在下方的开发者试用场景0、实验环境介绍实验平台右侧有两个按钮用来对服务器终端和远程桌面(即本地)进行切换子用户名称和子用户密码用于在远程桌面登录阿里云控制平台1、相关术语①ECS(Elastic Compute Service):弹性计算服务②Apache:Apache是一个软件基金会的名字,你所说的apache应该是指Apache HTTP Server吧,也就是apache服务器
2022-04-28 20:41:09
246
原创 在不划分VLAN条件下,交换机直连两个不同子网的思考
在不划分VLAN条件下,交换机直连两个不同子网的思考我们首先要明白,VLAN是在同一网段中起作用,因此这道题的答案便迎刃而解了:右图H1 ping 同一网段下的H2时,若交换机还没有学习到MAC地址,会将收到的H1报文向所有端口转发,这就造成了信道的浪费;而左图只会向H2发送,因为VLAN分割了192.168.1.0网段。但是当深入研究右边这个图的时候,就可以发现这个拓扑实际上无法运行起来,我们逐一分析:一、当网络没有默认网关(路由器)时操作:H1ping...
2022-04-12 23:28:11
3084
3
原创 git与github学习笔记(二)协同操作
如果你是一枚Coder,但是你不知道Github,那么我觉的你就不是一个菜鸟级别的Coder,因为你压根不是真正Coder,你只是一个Code搬运工。
2022-03-30 13:12:35
372
原创 NFC学习笔记
一、NFC与RFID对比共同点:信息都是通过频谱中无线频率部分的电磁感应耦合方式传递不同点: NFC RFID 传输距离 较远 较近、能耗低 数据传递方式 单向 增加了数据双向传送 应用 门禁、公交、手机支付 生产、物流、跟踪、资产管理 二、Andriod开发中的NFC浅谈Android开发中的NFC功能_fjnu_se的博客-CSDN博客_android nfc...
2022-03-26 21:18:33
1205
原创 packet tracer入门练习(一):单路由器实现不同子网间的通信
一、目标:按照如下图的地址规划,实现子网1到子网2之间的通信二、实验步骤记录:1.配置PC0、1、2、3的IP地址,并通过ping命令测试连通性实验现象:在只配置主机地址的情况下,PC0与1能够互通,2与3能够互通,但不同子网间的主机不能互通2.配置路由器的地址实验现象默认网关实验总结:主要步骤包括:1.为PC、路由器分配IP地址2.为pc配置默认网关3.为路由器配置静态路由...
2022-03-26 18:13:28
3300
原创 网络工程学习笔记3.25
整理一下最近的学习心得体会:一、数据帧转发过程中源/目标IP地址,源/目标MAC地址的变化:1.在交换机中的转发不改变源和目的MAC2.在路由器中转发:源和目的IP不变,源和目的MAC改变3.在主机中转发:只有目的IP不会改变2.以太网口与同步口的区别:S口是serial接口的意思,也叫高速异步串口,主要是连接广域网的V.35线缆用的,说白了就是路由器和路由器连接时候用的,要使用它必须设置时钟频率。F口是FastEthernet接口,叫快速以太网口,主要连接以太网(局域网)用的
2022-03-25 21:22:22
680
原创 git与github学习笔记(一)基础操作
如果你是一枚Coder,但是你不知道Github,那么我觉的你就不是一个菜鸟级别的Coder,因为你压根不是真正Coder,你只是一个Code搬运工。
2022-02-12 22:46:35
444
原创 SPI与IIC通信协议
根据时钟极性(CPOL)及相位(CPHA)不同,SPI有四种工作模式。时钟极性(CPOL)定义了时钟空闲状态电平: CPOL=0为时钟空闲时为低电平 CPOL=1为时钟空闲时为高电平时钟相位(CPHA)定义数据的采集时间。 CPHA=0:在时钟的第一个跳变沿(上升沿或下降沿)进行数据采样。 CPHA=1:在时钟的第二个跳变沿(上升沿或下降沿)进行数据采样。一、IIC1.I2C总线简介 I2C(Inter-Integrate...
2022-02-11 20:56:30
1771
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅