RYMCU

Hugh

不在沉默中爆发,就在沉默中老去!

C++类构造函数设置为私有的好处是什么? C++ 构造函数
把类的构造函数设为私有(private)是 C++ 中控制对象创建的核心技巧,最典型的用途就是实现「单例模式」(比如你关注的 Application 类),除此之外还有其他关键好处。下面结合场景和代码,把核心优势讲透:一、核心好处 1:强制 “唯一实例”(单例模式的核心)这是构造函数私有化最常用、最核心的场景 ——​禁止外部随意创建对象,确保整个程序中只有一个类实例​。为什么需要这样做?如果构造函
Hugh 2 小时前
C++类的静态成员变量在什么时候后初始化? C++ 对象 静态变量 初始化
C++ 类的静态成员变量(static member variable)的初始化时机是​核心语法重点​,它和普通成员变量、局部静态变量的初始化规则完全不同,结合你熟悉的 Application 类场景,我们分「规则」「示例」「注意事项」讲透:一、核心结论:静态成员变量的初始化时机类的静态成员变量属于「类本身」(而非某个对象),其初始化时机遵循以下规则:​初始化阶段​:程序启动后、main() 函数
Hugh 2 小时前
C++语法中不创建对象可以调用类的成员函数吗? C++ 对象 成员函数
答案是可以的,但要分情况。这个问题戳中了 C++ 「静态成员函数」和「普通成员函数」的核心区别 ——​GetInstance() 是「静态成员函数」,它不需要先创建对象就能调用​,这也是单例模式能 “用函数获取唯一实例” 的关键。我们用「大白话 + 对比」把这个逻辑彻底讲透,结合代码场景拆解:一、先明确:成员函数分两种,规则完全不同C++ 类的成员函数分为「静态成员函数(static)」和「非静态
Hugh 3 小时前
修改.gitignore不生效可能的解决办法 Git
有时 Git 会缓存 .gitignore 的解析结果,如果在修改 .gitignore 后没有刷新缓存,可能会导致新规则不生效。解决办法:可以尝试清除 Git 的索引缓存,在项目根目录下执行:git rm -r --cached. git add. git commit -m "Update.gitignore"第一条命令移除所有已追踪文件的缓存,第二条命令重新添加所有文件(此时会按照新的 .g
Hugh 2 月前
高速下载器RYDAP-HS使用说明 RYDAP-HS 离线下载器 高速下载器 DAPLINK
1.外形结构按键功能说明:B0出厂下载代码使用,用户无需使用。SET功能一:按住 SET 不放,再连接 USB,下载器将进入下载器固件更新页面,用于和小助手通信。功能二:在"离线下载"模式下,按 SET 按键,启动离线下载。K0状态切换按键,按住 K0 不放,再连接 USB,切换在线/离线下载模式。2.界面说明主页共 4 个按钮,点击进入对应页面。点击任意页面左上角,可跳转到主页。在线模式进入在线
Hugh 2 月前
小智工程目录结构 待分类
项目根目录项目根目录包含以下关键文件和子目录:​README.md​、​README_en.md​、​README_ja.md​:多语言的项目介绍文档。​main​:核心代码目录,存放主程序逻辑及相关模块。​scripts​:脚本工具目录,用于开发辅助、资源生成和固件发布等。CMakeLists.txt 和 ​idf_component.yml​:构建配置文件,用于定义项目依赖和编译规则。核心模块
Hugh 2 月前
extern "C"关键字使用 C++
extern "C" void app_main(void) 是 C++ 代码中用于声明函数遵循 C 语言链接规则的语法,常见于混合使用 C 和 C++ 的场景(如嵌入式开发中的 ESP-IDF 框架)。以下是详细解析:1. extern "C":指定 C 语言链接方式​作用​:C++ 支持函数重载(同一函数名可有不同参数),因此编译时会对函数名进行​名称修饰(Name Mangling)​,生成
Hugh 2 月前
__attribute__((packed))作用 嵌入式
__attribute__((packed)) 是 GCC 编译器(以及兼容 GCC 的编译器,如 Clang)提供的​扩展属性​,用于控制结构体(或联合体)的内存对齐方式,强制取消成员之间的填充字节(padding),让结构体成员按 “紧凑模式” 排列。核心作用:取消内存对齐,强制紧凑排列在 C/C++ 中,编译器为了提高 CPU 访问内存的效率,会自动给结构体成员之间插入​填充字节​(padd
Hugh 2 月前
嵌入式事件回调机制典型案例剖析 待分类
void OnNetworkError(std::function callback);void Protocol::OnNetworkError(std::function callback) { on_network_error_ = callback;
Hugh 2 月前
C++ Lambda 表达式语法 C++ lambda
以下是一个捕获列表和参数列表均不为空的 Lambda 表达式示例,结合 std::function 展示其用法,并详细解析语法:#include #include #include int main() { // 外部变量:将被Lambda表达式捕获 std::string prefix = "Result: ";
Hugh 2 月前
std::function的使用 C++
在 C++ 中,std::function on_press_down_; 这行代码涉及到标准库中的 std::function 类型,以下是对它的详细语法解释:1. std::function 简介std::function 是 C++ 标准库 头文件中定义的一个类模板,它是一个通用的函数包装器。它可以存储、复制和调用任何可调用对象,包括普通函数、Lam
Hugh 2 月前
Emoji 心情显示 待分类
来自:https://xiaozhi.dev/docs/development/emotion/Emoji 心情显示概述大语言模型使用单个 Emoji token 来表达当前的心情状态。这些表情符号不会被 TTS 系统朗读,但会作为独立的数据类型返回给客户端。数据格式通信采用 JSON 格式,示例如下:{ "type": "llm", "text": "😊", "emot
Hugh 2 月前
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 13