被 AI 坑过之后,我决定自己把这份嵌入式现代C++教程写完!
Tutorial_AwesomeModernCPP v0.1.0 发布!
首先浮夸风致歉!笔者想想看抽象的标题是否可以吸引人进来!
一个从 C 语言基础、Modern C++,一路走到 STM32 嵌入式实战的完整教程项目——v0.1.0 正式发布了。这个项目迎来了它的第一版本Release!欢迎各位想重新看看C / C++各个版本特性和讲解的朋友前来这里!
👉:https://github.com/Awesome-Embedded-Learning-Studio/Tutorial_AwesomeModernCPP
为什么会有这个项目
笔者在学习和使用 C++ 的过程中,踩过太多本来不需要踩的坑。市面上的 C++ 教程要么只讲语法不讲"为什么",要么只停留在桌面端、从来不提嵌入式场景,要么干脆就是一堆面试八股文的堆砌——真正想用 C++ 写点东西的时候,发现之前学的那些东西全都接不上。
我知道肯定会有人问——AI时代为什么不用AI呢?笔者试过,甚至这里有一些文章就是AI最开始打的初稿。笔者发现,AI的语料过时,甚至错误百出(气死我了,谁告诉它不经过profile乱夸结论的!害人不浅!),如果不经过审查,小白极容易被AI误导!
为了希望让小白学习C++,也是为了让嵌入式软件领域工作的朋友,或者是任何爱好者(比如说笔者)在业余时间挑战使用C++入行嵌入式,笔者就把自己的尝试,大学期间的学习笔记,任何笔者收集到的内容,浓缩在了这里!这个项目就是笔者给自己、也给所有有同样困惑的朋友交的一份答卷:我们想把从 C 语言基础到 Modern C++、再到嵌入式板上实战,或者任何其他需要C++的帮助的整条链路!这个版本虽然只是迈出了小小的一步(嗯,只有最通用的C++教程部分)
v0.1.0 里有什么
卷一:C++ 基础入门
从环境搭建、类型系统、控制流、指针,到面向对象、模板初步、异常处理。没有 C 语言背景也没关系,附带完整的 C 语言速通和 C++98 入门系列。纯小白从这里来
卷二:现代 C++ 特性
移动语义、RAII 与智能指针、constexpr、Lambda、enum class / variant / optional / expected、string_view、现代错误处理……把 C++11/14/17 那些"让 C++ 不再是那个 C++"的核心特性掰开了讲。想从"会写 C++“跨到"会用 Modern C++”,从这卷开始。
编译与链接深入
预处理、静态库与动态库、符号可见性、运行时加载、库搜索逻辑。市面上很少有教程认真讲这块,但搞不懂链接机制,不管是不是嵌入式开发,这是迟早要栽跟头的!
卷八:嵌入式开发 · STM32F1
WSL2 USB 透传、CMake 交叉编译,GPIO 输出(LED)和 GPIO 输入(按键消抖)两个完整实战系列,每个系列都走"C 实现 → C++ 改造 → 模板化抽象"的渐进式推进。另有零开销抽象、动态内存陷阱、对象池、CRTP 与静态多态、侵入式容器等专题。
哦,然后呢,关我啥事?
如果你是小白,不知道从哪里开始:
👉 https://awesome-embedded-learning-studios.github.io/Tutorial_AwesomeModernCPP/vol1-fundamentals
从第一篇往下读就行。读完觉得哪里绕或者哪里没说清楚,评论区直接说,笔者盯着改。
如果你是大佬,有槽点想吐:
👉 https://awesome-embedded-learning-studios.github.io/Tutorial_AwesomeModernCPP/vol2-modern-features/
Issue 直接开喷,笔者验证后第一时间更新。嵌入式以外的 C++ 领域(并发、网络、GUI……)也非常缺人,有想法的话 PR 欢迎,贡献会诚实标注。
在线阅读 / 本地部署
是的!看Github原生文档多少有点折磨,不过没事!我自己把文档站部署在 GitHub Pages 上,支持全文搜索、标签导航、中英双语切换:
https://awesome-embedded-learning-studio.github.io/Tutorial_AwesomeModernCPP/
如果你一点不喜欢远程,或者您的环境对网络支持实在优先,没事,在有网的地方上克隆安装好依赖后,仍然可以Happy Reading!👇
git clone https://github.com/Awesome-Embedded-Learning-Studio/Tutorial_AwesomeModernCPP.git
cd Tutorial_AwesomeModernCPP
./scripts/mkdocs_dev.sh install && ./scripts/mkdocs_dev.sh serve
然后浏览器打开 http://127.0.0.1:8000 就能看到完整的教程站点了。
后续规划
卷三到卷七(标准库深入、高级主题、并发编程、性能优化、工程实践)目前处于规划与逐步编写阶段,卷八的其余领域(网络编程、GUI、算法、数据存储)和贯穿式实战项目也在推进中。一个人做不完,AI会胡说八道,如果您对上述领域有深刻的见解的朋友,欢迎向这里贡献您的想法!开Issue摇我更新,或者是直接提 Pull Request。CONTRIBUTING.md 里有完整的贡献指南!(甚至感觉CONTRIBUTING.md就有问题的话直接Issue开喷!笔者会第一时间响应的!)
许可证
MIT License,你知道的——随便用、随便改、随便 Fork。
更多推荐
所有评论(0)