- 博客(18)
- 收藏
- 关注
原创 CMAKE中OPTION语法
可以用 set 改写帮助文本或默认值,但注意不要无意覆盖用户通过命令行设定的值。可通过 GUI、ccmake 或命令行 -D VAR=ON/OFF 覆盖。option 仅适合二值 ON/OFF。或使用 CMakePresets.json 提供更结构化的预设。option(<VAR> "说明文本" [ON|OFF])在 CMake 配置阶段提供一个 ON/OFF 的布尔开关。生成的变量是普通缓存变量(CACHE BOOL)与 CACHE 变量的关系。根据选项启用功能/目标。命令行优先:在配置时。
2025-10-31 10:40:26
370
原创 C++中this指针链式调用
返回类型用 Builder&,返回 *this,即可 obj.f().g().h() 连续调用。如果返回的是值(即拷贝),也能链式调用,但会产生临时对象拷贝或移动,通常不需要且低效。在非静态成员函数中,编译器会隐式传入一个指向当前对象的指针,名字就是 this。在 const 成员函数中:const ClassName* const。关键是“返回引用/对象自身”,使得后续还能继续调用成员函数。常见写法:在修改状态的成员函数中返回 *this 的引用。在普通成员函数中:ClassName* const。
2025-10-21 11:10:26
145
原创 如何使用git命令把单个文件恢复到某个历史提交的内容
这篇文章演示了如何将单个文件恢复到Git历史提交版本的操作步骤。以main分支的src/config.json文件为例,首先通过git log查看文件历史,确认目标提交3f5a9c7;然后使用git checkout命令从该提交取出文件到当前工作区并暂存;接着提交变更并推送到远程。整个过程不会改写历史,而是新增一个提交,仅影响目标文件。最后还提供了较新的git restore命令作为替代方案。
2025-10-15 10:59:24
295
原创 cmake中的file命令中的子命令GLOB_RECURSE说明
"$\{CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp" 和 "$\{CMAKE_CURRENT_SOURCE_DIR}/include/*.h": 匹配路径与模式,分别收集 src 目录下所有 .cpp 以及 include 目录下所有 .h(含子目录)。如果你想实现更精细的筛选(例如排除测试目录、只包含特定前缀的文件、或者生成 compile_commands.json),告诉我你的目录结构和需求,我可以帮你给出对应的 CMake 片段。官方仍更推荐“显式列出源文件”。
2025-10-13 11:08:22
485
原创 如何使用find命令批量移动文件并进行重命名
mv -- {} "./new_dir/{}_renamed.jpg": 移动文件,并在新目录添加后缀(注意:{}包含路径,目标名称会保留原路径前缀,需确保目录存在)。这会移动并重命名文件。目标路径为./new_dir/原文件名_renamed.jpg(新文件将移动到new_dir目录并重命名)。文件名处理: 使用双引号包裹变量(如"{}")避免空格导致的错误(引用[4]的循环方法也演示了此技巧)4。find . -type f -name "*.jpg": 搜索当前目录下所有.jpg文件。
2025-10-09 16:11:29
925
原创 C++基类内部调用子类重写虚函数的实现方法
摘要:C++中通过模板方法模式实现基类调用子类虚函数,基类定义流程框架,子类重写虚函数扩展具体逻辑。实现时需注意:1)多态调用机制确保执行子类实现;2)避免构造/析构函数中调用虚函数;3)虚函数表实现动态绑定。该方法强制流程控制,消除子类遗漏基类调用的风险,适用于基类控制算法框架、子类定制特定步骤的场景。(149字)
2025-09-18 08:58:48
191
原创 C++ lambdab表达式
Lambda表达式是C++11引入的匿名函数对象,允许在需要函数的地方直接定义功能代码。它解决了传统函数指针和函数对象的冗长问题,特别适用于STL算法、异步编程和事件处理等场景1。核心优势包括:简洁的语法自动类型推导闭包功能(捕获上下文变量)
2025-09-10 09:28:42
372
原创 LINUX socket 本地套接字
(内核缓冲区实现),通过文件描述符操作,统一了文件/套接字的接口规范。内核保证数据有序到达(SOCK_STREAM模式)绑定后生成socket文件,退出时需手动删除。自动处理消息边界(SOCK_DGRAM模式)零拷贝技术支持,减少内核/用户空间数据复制。:保留消息边界的数据报(类似UDP):可靠双向字节流(类似TCP):TIME_WAIT状态套接字。最大108字节(包括终止符)通过文件系统权限控制访问(:当前使用中的套接字数量。:指定本地套接字协议族。,文件权限需开放(建议。:程序退出后需主动调用。
2025-09-02 09:04:59
168
原创 Linux 环境下 fseek 函数详解
fseek是 C 标准库中用于设置文件位置指针的函数,在<stdio.h>中声明。: 指向FILE对象的指针offset: 从基准位置开始的字节偏移量(可正可负)whenceSEEK_SET:文件开头SEEK_CUR:当前位置SEEK_END:文件末尾。
2025-08-26 14:59:19
338
原创 Linux fread 函数详解
摘要:fread是Linux标准I/O库中的二进制文件读取函数,其原型为size_t fread(voidptr, size_t size, size_t count, FILEstream)。该函数按数据项(如结构体或数组)读取内容,返回实际读取的项数。使用流程包括:打开文件、分配缓冲区、读取数据并检查结果(通过feof/ferror判断状态)、关闭文件。特点包括高效的缓冲机制、适合处理二进制数据,常用于读取配置文件、媒体文件等场景。需注意与read()系统调用的效率差异,以及文本文件中换行符的转换问题。
2025-08-26 14:33:38
340
原创 C++ `std::bind` 使用方法详解
std::bind` 是 C++11 引入的函数适配器,用于**部分参数绑定**和**函数对象创建**,通过占位符机制实现参数延迟绑定。- `std::placeholders::_1`、`_2` 表示调用时传入的第1、2个参数。- 参数绑定支持**值传递**或**引用传递**(需用 `std::ref`)4. **支持所有可调用对象**:普通函数、函数指针、lambda、函数对象等。1. **部分参数绑定**:固定部分参数,用占位符保留灵活参数。3. **参数绑定顺序自由**:占位符可任意顺序排列。
2025-06-09 14:17:20
386
原创 四相五线步进电机的步距角计算原理
输出步距角=未减速步距角减速比=5.625∘64≈0.08789∘输出步距角=减速比未减速步距角=645.625∘≈0.08789∘。未减速步距角=360∘64=5.625∘未减速步距角=64360∘=5.625∘。
2025-06-06 10:08:00
637
原创 【无标题】osDelayUntil 绝对延时
函数在 RTX 中实现绝对延时的原理主要依赖于系统时钟的监控和任务状态的管理。通过这种方式,RTOS 能够确保任务在指定的绝对时间点之前被唤醒,从而满足实时系统的要求。
2025-01-17 09:39:25
501
原创 halcon中图像极坐标变换
1、极坐标系(polar coordinates)是指在平面内由极点、极轴和极径组成的坐标系。在平面上取定一点O,称为极点。从O出发引一条射线Ox,称为极轴。再取定一个单位长度,通常规定角度取逆时针方向为正。这样,平面上任一点P的位置就可以用线段OP的长度ρ以及从Ox到OP的角度θ来确定,有序数对(ρ,θ)就称为P点的极坐标,记为P(ρ,θ);ρ称为P点的极径,θ称为P点的极角。2、极坐标系的...
2019-04-09 11:17:17
5893
转载 如何将本地代码上传到github中的远程仓库中?
1、码云上新建一个项目 XXXX (项目名)2、本地创建一个文件夹E:/XXXX,然后使用git bash 3、cd 到本地文件夹中E:/XXXX //如果是在创建的文件中git bash 则此步骤可省略4、使用 git init 命令 //初始化一个git 本地仓库此时会在本地创建一个 .git 的文件夹5、使用git remote add origin ...
2018-12-27 11:03:33
253
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
4