自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 CAN总线通信协议

CAN(Controller Area Network)总线是一种常用于车载系统、工业自动化和嵌入式系统的串行通信协议。它采用差分信号传输逻辑 0(显性位):CAN_H > CAN_L(典型值 3.5V 和 1.5V)逻辑 1(隐性位):CAN_H ≈ CAN_L(大约 2.5V)

2025-04-01 13:33:31 553

原创 Linux内核(八股文)

而不是直接操作物理地址。,不会影响其他进程。,用来记录。,然后才能真正访问内存。这样就实现了,同时也能让物理内存更高效地管理和分配。

2025-03-19 16:19:21 989

原创 C++(八股文)

将资源的获取和释放封装到类的构造函数和析构函数中。

2025-03-18 14:02:05 1085

原创 栈(leetcode)

注意unordered_map不能像数组和vector一样用[ ]访问元素!

2025-03-17 19:02:27 221

原创 Linux性能调试工具使用

安装:-----快速找出性能瓶颈和优化点采用perf对系统CPU事件进行采样:采样60s,会生成一个perf.data文件;火焰图的宽度用于比较不同函数或代码路径的性能,高度用于显示函数调用堆栈的深度。perf支持硬件性能计数器、软件性能计数器、跟踪点以及动态探针(如 kprobes 或 uprobes)。:能够对整个系统进行统计分析,包括内核和用户态代码。

2025-03-14 21:09:27 895

原创 C++(字符串-leetcode刷题)

双指针法:注意char是' '单引号反转字符串2

2025-03-13 20:26:26 212

原创 C++(哈希表-leetcode)

哈希函数(Hash Function)是一种数学函数,它接收任意大小的输入数据,并输出一个固定长度的值(通常称为哈希值或散列值),它们更安全、功能更强。

2025-03-12 19:03:45 325

原创 Cmake(Server项目学习)

这个 CMake 代码的核心作用是:查找 test/ 目录下所有 .cpp 文件。构建有意义的可执行文件名(去掉 .cpp 后缀)。遍历每个 .cpp 文件:单独构建成可执行文件,而不是整个项目的一个模块。添加共享库依赖,确保测试程序能访问 pine_shared 代码。设置可执行文件的输出目录 为 bin/,方便管理。定义 make check-tests 目标:让 make check-tests 编译所有测试程序。

2025-03-12 11:06:22 645

原创 C++设计模式

如果单例对象不是静态的,那么每次通过类名调用获取实例的方法时,都可能需要重新创建对象,这违背了单例模式“确保只有一个实例”的原则。-----导致 依赖倒转原则不满足(原则是层层递进的关系)这会导致多个实例被创建,违反了单例模式的“唯一性”原则-------------通过父类设置虚函数,子类继承父类,重写虚函数,这样高层和底层通过抽象类解耦了。静态对象属于类,可以通过类名直接访问,提供全局访问点。静态对象的生命周期与程序相同,符合单例模式的要求。静态对象避免了重复实例化,确保了单例的唯一性。

2025-03-11 20:34:18 719

原创 C++链表 (刷题lettcode)

以下只是应付面试时手撕代码时:输入需要自己创造输入,链表结构体也需要自己创造。链表是一种通过指针串联在一起的线性结构,每一个节点由两部分组成,(存放指向下一个节点的指针),最后一个节点的指针域指向。在内存中的某地址上,分配机制取决于操作系统的内存管理。是通过指针域的指针链接在内存中各个节点。所以链表中的节点在内存中。双链表:每一个节点有。

2025-03-10 20:41:53 589

原创 C++新特性(服务器项目)

是一个用于绑定函数、成员函数或可调用对象的工具,它允许你将某些参数预先绑定到一个函数上,从而生成一个新的可调用对象。占位符的作用正是为绑定的函数预留参数位置,以便在调用时动态传递参数。表示第二个参数,依此类推。这些占位符的顺序和数量决定了绑定函数的参数顺序和数量。时,预先绑定部分参数,同时为其他参数保留位置,这些参数可以在调用时动态提供。是一个通用的函数封装器,它可以存储任何可调用对象,只要其调用签名匹配即可。返回的对象是一个可调用对象,但不是普通函数指针。开始,表示调用时传递的第一个参数,

2025-03-07 14:01:21 625

原创 C++多态

在编译器处理的时候进行了动态绑定 :在最终调用的时候才去确定,这个指针指向的对象是谁,而不是编译的时候最终调用的是谁。-------抽象类,有抽象类是不能够实例化的。也就是不能够new一个实例对象的。2.父类的指针或者引用要指向子类的对象(实例),通过父类的指针和引用调用子类重写的虚函数 (父类调用过来的)1.有子类继承父类 发生继承,父类里面有虚函数,在子类继承父类的时候要重写虚函数。overried表示子类重写了父类的虚函数,检测虚函数的名字是否正确。同名函数有不同的状态--函数内部处理的动作不一样。

2025-03-04 22:38:17 294

原创 16.Git分支基本操作

git log --graph --oneline --decorate --all 查看分支图。git checkout还可以恢复文件 为了避免歧义 ------git branch -d (删除分支 -d表示删除合并的分支)git checkout dev (切换想要的分支)git merge dev(将次分支合并到当前分支)git branch dev(创建分支名字)git branch 命令来查看当前的分支。git switch main(切换分支)

2025-03-03 00:13:13 94

原创 15.Git--在vscode中使用git

使用命令行 使用VScode打开当前目录。code .(打不开需要配置)

2025-03-02 23:44:28 170

原创 12.Git命令-关联本地仓库和远程仓库

GIt命令的使用:关联本地仓库

2025-03-02 17:30:15 151

空空如也

空空如也

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

TA关注的人

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