[Code] 沙加之编程修养
C++是考验程序员修养的首选。这里记录一些标准程序员需要知道的东西,提高修养。
有趣的链接列在这里:
- c++神之博客链表:那些C++牛人的博客
- 各个阶段的学习指导:程序员技术练级攻略,miloyip/game-programmer / C++强大背后
- 好书共享:本人EE知识体系导航 - Embedded menu
编程内功
一、操作系统
-
链接与加载
~Linux C_22_ELF加载链接【加载链接,用户内核空间关系】
-
- a.out run!【代码细节 - 用户内核关系】
~Linux C_21_ELF文件解析【文件内部细节】
-
- I need a Page!【内存分配以及MMU】
~Linux C_20_静态库与动态库【使用和延迟机制介绍】
~Linux C_16_预处理【宏技巧】
~Linux C_13_变量存储布局【变量的内存权限基本知识】
~Linux C_8/14_作用域【变量/函数的文件链接问题】
~Linux C_5/6/7/12_ELF链接【命令查看内部地址细节】
~Linux C_4_进程的内存映像【进程的生成过程以及管理】
-
- Starting from fork(...)【进程的内存映像】
- 内核里的红黑树【进程组织管理】
- 等待队列【进程优先级管理】
- Linux's Heartbeat【进程切换管理】
~Linux C_2/3/11_GDB DEBUG【printf&Assert&GDB】
~Linux C_1_一些细节【犄角旮旯的问题】
-
预备役
二、ARM汇编
-
Device Driver
-
Device Datasheet
编程外功
一、新建工程
-
安装 GCC

sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo apt-get install g++-4.9 you can then compile using the command: g++-4.9 -std=c++14 -Wall -Werror -O2 -o helloworld helloworld.cpp
-
从 Makefile 到 CMake
[c++] CMake to build project 【正规部队-重点】
[c++] Makefile is a good start.【几个实用例子】
山寨内核Makefile之“天龙八部” 【逐行解释】
[Link] 跟我一起写Makefile
-
灵活的命令行参数
[advanced] Professional coding 03 - 命令行参数
二、代码质检
-
命名法
[advanced] Professional coding 02 - 书写格式【遵循Google风格 】
[Link] Google 开源项目风格指南
-
测试
[quality] 05 - ctest: cmake tells U how to test
[quality] 04 - valgrind: monitor memory occupied by your sh*t a.out
[quality] 03 - cache: system level optimization
[quality] 02 - clang static analyzer: scan-build
[quality] 01 - gpertools: measure each function
[quality] 00 - Introduction: code testing methods
三、C/C++ language
-
基础知识
[c++] IKM【菜鸡面试】
[c++] C Language Features【菜鸡教程基础笔记】
[c++] constexpr and literal class【用的少】
[c++] namespace【使用案例】
[c++] Exceptions【基础概念,较难】
- [Optimisation] Read & Write file on Hard Disk【读写缓冲的重要性】
- More about Struct&Union【用法技巧】
- char的符号,有木有【arm下却是无符号】
- switch为何高效率【通过位移直接跳到处理代码处】
- [Link] C++基于范围循环(range-based for loop)的陷阱
- [Link] C++11的value category(值类别)以及move semantics(移动语义)
- [Link] 谈谈C++的volatile关键字以及常见的误解
- [Link] 从硬件到语言,详解C++的内存对齐(memory alignment)
-
类和对象
[c++] Class【类和对象的基础知识】
[c++] Type Casting【类型转换】
[c++] Operator overloading【常见的操作符重载】
[c++] Copy Control【拷贝控制】
-
标准模板库 STL
[c++] String and her STL【以string为基础的STL再学习】
-
- [c++] Let's dissect STL【源代码剖析】
- [c++] Let's dissect STL【源代码剖析】
[c++] Sequence Containers【顺序容器】
[c++] Associative Containers【关联容器】
[c++] Iterators【迭代器】
[c++] Algorithms in STL [to do]
-
高级部分
[c++] Smart Pointers【基本用法】
[c++] RTTI: Run-Time Type Identification [to do]
[c++] Templates【元编程基础】
[c++] New features in c++11/14/17
-
更多开源库
[Link] Folly: Facebook Open-source Library
[Link] The Boost Graph Library (BGL)
编程磨洋功
具备一定的基础后,开始进阶学习,最终的目的可能就是具备OpenCV源代码提交的能力。
Ref: C++学习心得和进阶路线总结
Ref: C++进阶 必读书籍
2010年8月号《程序员》刊登的拙文《C++强大背后》最后一段
短小精悍的两本书:
《Essential C++》
《Accelerated C++》
项目实战的两本书:
《Effective C++》
《More Effective C++》
《Effective Modern C++》
模板实战:
《C++ Templates》
神之领域:
《C++语言的设计和演化》
《编程的本质》(含STL设计背后的数学根基)、
C++标准文件《ISO/IEC 14882:2003》、C++标准委员会的提案书和报告书、关于C++的学术文献
《C++ Coding Standard: 101 Rules》
《Exceptional C++》
《More Exceptional C++》 // --> Google风格说:我们不使用 C++ 异常
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律