开源一套正在建设的现代 C++ 教程!
🚀开源一套正在建设的现代 C++ 教程!
笔者吐槽:靠有点像卖课的,但真不是,笔者纯出于兴趣维护的。笔者想了想,有时候光看各种各样的文章。显得太零碎。亮出来代码示例吧,显得太冗余。那为什么不专门维护一个仓库好好做这个事情呢?
所以笔者决定,试试看利用Github仓库托管一下。
TL;DR
好的教程都有TL;DR,一句话——这边请:
GitHub Pages: 点击访问,获得更好更加流畅的阅读体验(嘶,Github静态网页有可能访问速度比较慢,如果有朋友有需求,可以尝试看看下面的仓库克隆下来本地预览)
啥,想看看原仓库,在这里:
现在正在想办法看看支持模拟机和真机实战确保代码可靠。(别喷别喷,方案真没想好,感兴趣的话朋友随意在评论区提意见,小的速速核时是否可行!)
所有的文章还会持续的在公众号,知乎和ZEEKLOG上进行同步!请各位放心(含泪干活中)
项目介绍
Tutorial_AwesomeModernCPP 是一套完整的、系统化的嵌入式现代 C++ 开发教程。不计划只停留在简单的语法介绍,因为那样,我们更应该去看CPPReference。而是尝试探讨如何在嵌入式系统中高效使用 C++,涵盖性能优化、内存管理、硬件交互等核心主题。
🌟 项目亮点
1️⃣ 系统化的知识体系
教程从零开始,循序渐进地构建知识体系:
Chapter 0: 前言与基础 ──────┐ Chapter 1: 构建工具链 │ Chapter 2: 零开销抽象 ├── 核心基础 Chapter 3: 内存与对象管理 │ Chapter 4: 编译期计算 ─┘ │ ├─→ Chapter 5: 内存管理策略 ├─→ Chapter 6: RAII 与智能指针 ├─→ Chapter 7: 容器与数据结构 ├─→ Chapter 8: 类型安全与工具类型 ├─→ Chapter 9: 函数式编程特性 └─→ Chapter 10: 并发与原子操作 2️⃣ 完整的代码示例
- 160+ 可独立编译的代码文件
- 44 个 CMake 项目
- 涵盖 STM32、Linux 等多种平台
- 每个示例都有详细注释
// 示例:RAII 管理 GPIO 引脚classGPIOPin{public:GPIOPin(uint8_t pin, GPIODir dir)noexcept{hal_gpio_config(pin_, dir);}~GPIOPin()noexcept{// 自动恢复引脚状态hal_gpio_config(pin_, GPIODir::Input);}// 禁止拷贝,允许移动GPIOPin(const GPIOPin&)=delete;// ...};3️⃣ 现代化的学习体验
- 🏷️ 标签分类 - 按主题快速查找相关内容
- 📊 难度分级 - beginner / intermediate / advanced
- 🔍 智能导航 - 自动推荐相关文章
- ⏱️ 阅读时间 - 帮助规划学习进度
核心内容预览
📚 零开销抽象
教你如何在嵌入式环境中安全使用 C++ 的抽象能力,而不产生额外的运行时开销。
🧠 RAII 与智能指针
资源自动管理是 C++ 的杀手锏。在嵌入式场景下,RAII 可以让你的外设管理更安全、更简洁。
📦 嵌入式友好的容器
std::array、std::span、循环缓冲区…掌握这些工具,告别裸数组操作。
⚡ 编译期编程
constexpr、consteval、模板元编程…把计算从运行时转移到编译时,零开销!
🔗 并发与原子
在多核 MCU 上编写安全的高效代码,掌握 std::atomic 和内存模型。
如何开始学习
🌐 在线阅读
教程已部署为静态网站,方便随时访问:
GitHub Pages: 点击访问
💻 本地运行
哈?你说想本地跑起来吗?
# 克隆仓库git clone https://github.com/Awesome-Embedded-Learning-Studio/Tutorial_AwesomeModernCPP.git cd Tutorial_AwesomeModernCPP # 安装依赖并启动预览bash scripts/mkdoc_setup_local_dependency.sh bash scripts/local_preview.sh # 打开浏览器访问 http://127.0.0.1:8000📖 学习建议
- 按顺序学习 - 教程设计循序渐进,建议从 Chapter 0 开始
- 动手实践 - 每个示例代码都可以独立编译运行
- 参考标签 - 遇到问题时,通过标签系统查找相关内容
- 循序渐进 - 根据难度等级选择适合的内容
适用人群
| 人群 | 收益 |
|---|---|
| 嵌入式 C 开发者 | 掌握现代 C++,提升代码质量 |
| C++ 初学者 | 了解 C++ 在嵌入式中的正确用法 |
| 嵌入式工程师 | 学习资源受限环境下的最佳实践 |
| 计算机专业学生 | 系统学习嵌入式 C++ 开发 |
开源贡献
本项目由 Awesome Embedded Learning Studio 维护,采用 MIT 协议开源。我们欢迎任何形式的贡献:
- 📝 修正错别字和语法错误(别骂了别骂了,真是笔误)
- 💡 提出改进建议(仓库有些CI流程,但是笔者不太熟悉CI,其他地方都可以随意Issue)
- 🔧 提交代码改进(一些代码示例并不好,或者写法非常不规范,笔者也是C++刚学没太久,希望各位前辈批评!)
- 📖 完善文档(有一些笔者必须指出是AI写,我审核修改的,肯定有不完美的地方,欢迎批评!)
- 🐛 报告 Bug(Issue,请,速速修我)
仓库地址: https://github.com/Awesome-Embedded-Learning-Studio/Tutorial_AwesomeModernCPP
结语
每一次写文章都要纠结一会结语。那就这样——
换一种更新的方式,理解现代C++。也让嵌入式开发更现代、更高效、更优雅!
私货时间
到这里就可以溜了各位,下面是笔者的真私货
- 🔗 charlie114514191-ZEEKLOG博客
- 🔗 Hello World! - Just Keep going forward!
- 🔗 Hello World! - Just Keep going forward!(这是我的新博客地址,上面的已经Archive了(悲))
- 🔗 我的公众号:Charliechen的编程小屋
- 🔗 我的知乎:老老老陈醋
- 🔗 是的还有一系列视频,我在B站分享一些工程实践的内容,欢迎看看:现代C++工程实践!