正常
阶段 0 · 开发环境与编译:19 章导读
这一阶段讲的是“写 C 之前,先把工具链弄通”:gcc/clang 怎么编、make/cmake 怎么构建、gdb 怎么调、sanitizer 怎么抓错。可 19 章一口气读完,对萌新是劝退的:您可能一行 C 都没写,就被预处理、汇编、链接器顺序这些深度话题淹没。
所以这一阶段当工具箱手册用,别当线性教材:咱们按下面的分层挑着读,需要哪块回查哪块。
两条路径,挑一条
🌱 萌新快速通道(目标:两三章内写出能跑的 C):读完下面“必读”那三章,直接跳到 阶段 1 · C 语言基底 去写 C(变量、控制流、函数、指针);写到需要构建、调试、排坑了,咱们再回这里查“推荐”和“选读”。
🔬 折腾工程师全读(目标:把工具链彻底摸透):从头线性读到尾,这是 C-Journey 的招牌体验——命令行优先、亲手踩坑、贴真实输出。如果您有别的语言经验、想真正搞懂 C 和底层,这条路就是给您准备的。
🌱 必读 —— 读完就能动手写 C
- 00 序章:C 从哪儿来 —— 全书起点,几分钟纯故事:C 的诞生、编译器=翻译官、标准演进(结尾埋下一颗“同一条命令两个答案”的雷)
- 01 工具链体检 —— 装好 gcc/clang/gdb/make/cmake、第一条
gcc hello.c、立“显式传 -std”纪律(不传会被 gcc 默认 C23、clang 默认 C17 坑) - 03 编译四阶段全景 —— 心智模型:
.c怎么一步步变成可执行(预处理、编译、汇编、链接四阶段);后面所有工具链章都是这四阶段的展开
🔧 推荐 —— 写了几天练习,这些很快就从“想用”变“离不开”
- 02 VSCode + Clangd —— 把工具链接进编辑器,获得跳转/补全/实时诊断
- 09 警告旗标进阶 ——
-Wall -Wextra -Werror,让编译器替咱们抓低级错(萌新超需要) - 10 标准与优化 —— 至少懂
-std=c11要显式传、-O在干嘛 - 12 make 入门 —— 文件一多,手敲 gcc 就烦了,make 替咱们管
⚗️ 进阶选读 —— 撞墙了 / 想深入了 / 做正经工程了,再按需回查
编译器与链接器内部(您链接报错看不懂、想懂编译器在干嘛时):
- 04 预处理深入 —— 宏、
#include、条件编译的坑 - 05 编译阶段看汇编 —— 看懂
-O对代码做了什么、ABI 是怎么回事 - 06 目标文件与符号 ——
nm看 T/t/U/D/B,重定位 - 07 链接与静态库 ——
undefined reference、multiple definition、库顺序陷阱 - 08 动态库与 dlopen ——
.so、运行期加载
抓错与排障(您的程序崩了、出怪结果时):
- 11 Sanitizer 门禁 —— ASan/UBSan 当场抓内存错和 UB(神器,先知道存在就行)
- 14 GDB 基础 —— 段错误定位、断点单步、看变量
- 15 GDB 进阶 —— 条件断点、watchpoint、core dump
工程化与协作(您的工程大了、要协作、上 CI 时):
- 13 CMake 入门 —— 工程大了 make 不够用,CMake 替咱们管跨平台构建
- 16 Git 工作流 —— 版本控制基本功
- 17 GitHub Actions —— CI 自动跑构建/测试/质量门
- 18 格式化与质量门 —— clang-format 统一代码风格
学完之后
“必读 + 推荐”读完(7 章),咱们写 C 的工具链就齐了,能编、能跳转、能开警告、能构建、懂标准。接下来该真正写代码了:去 阶段 1 · C 语言基底 学类型、运算、控制流、函数、指针。“选读”那 12 章不用急,它们是工具箱手册,您写到对应场景(链接报错、程序崩、上 CI)再回来查就行。
全部代码笔者用 gcc 16 + clang 22 真编真跑(
-std=c11 -Wall -Wextra),贴真实输出、引 ISO/IEC 9899 条款。