# 深入 C 语言和程序运行原理:从底层逻辑到工程实战

在软件工程的浩瀚图谱中,C 语言始终占据着基石般的地位。它不仅是操作系统的母语,更是理解计算机如何真正“思考”与“执行”的钥匙。本课程《深入 C 语言和程序运行原理》并非一份简单的语法速查手册,而是一场带你穿透代码表象、直抵程序运行本质的深度旅程。无论你是希望夯实基础的初中级开发者,还是试图打破性能瓶颈的高级工程师,这门体系课都将为你提供一套完整且可落地的知识框架。

重塑认知:为何今日仍需深耕 C 语言?

课程开篇即直面一个核心命题:在 Python、Go、Rust 等现代语言蓬勃发展的今天,C 语言是否已过时?答案显然是否定的。通过开篇词与春节策划环节,课程引导学员构建个人知识体系的“飞轮”,并引入 JIT Compilation 等前沿概念,帮助读者理解 C 语言在现代计算生态中的独特价值——它既是高性能计算的首选,也是连接硬件与软件的最短路径。此外,特邀大咖 LMOS 与 Tony Bai 分别从“瑞士军刀”的灵活性与 Go 程序员的转型视角,剖析 C 语言不可替代的工程意义,让你明白掌握 C 语言不仅是学习一门技术,更是获得一种向下兼容的系统思维。

透视黑盒:编译执行的完整链路

很多开发者只知如何写代码,却不知代码如何变为指令。本系列特别放送中,海纳老师将 C 语言的编译执行过程拆解为三讲,从预处理、编译、汇编到链接,层层剥开“黑盒”。你将清晰看到源码如何在不同阶段转化为目标文件,最终生成可执行程序。配合罗剑锋老师对 NGINX 源码的深度解析,课程展示了 C 语言在高性能网络服务中的经典范式,让你见证理论如何转化为亿级并发背后的工程奇迹。

进阶实战:从语言特性到架构思想

课程并未止步于原理,更强调了工程实践。通过对比 C 与 C++ 的语言特性差异,帮助 C 程序员拓展视野;借助 LMOS 提出的“用面向对象思想开发 C 程序”理念,解决大型 C 项目的可维护性痛点。这种兼顾底层原理与上层架构的教学设计,旨在培养既懂底层优化、又具系统视野的复合型人才。

如果你渴望摆脱对高级抽象的黑盒依赖,真正掌控程序的每一次内存分配与指令跳转,这门课程将是你不可多得的指南。在这里,C 语言不再是一门古老的技艺,而是通向计算机世界核心的通行證。

课程目录

开篇词 (1讲)

  1. 开篇词|时至今日,如何更好地拥抱现代 C 语言?

春节策划 (3讲)

  1. 春节策划一 _ 构建自己的知识体系,让学习的“飞轮”持续转动
  2. 春节策划三 _ JIT Compilation:一种特殊的程序执行方式
  3. 春节策划二 _ 关于 C 语言,我有这些书籍想推荐给你

特别放送 (8讲)

  1. 加餐 _ 和 C 语言相比,C++ 有哪些不同的语言特性?
  2. 大咖助阵|LMOS:为什么说 C 语言是一把瑞士军刀?
  3. 大咖助阵|LMOS:用面向对象的思想开发 C 语言程序
  4. 大咖助阵|Tony Bai:Go 程序员拥抱 C 语言简明指南
  5. 大咖助阵|海纳:C 语言是如何编译执行的?(一)
  6. 大咖助阵|海纳:C 语言是如何编译执行的?(三)
  7. 大咖助阵|海纳:C 语言是如何编译执行的?(二)
  8. 大咖助阵|罗剑锋:为什么 NGINX 是 C 编程的经典范本?

答疑篇 (2讲)

  1. 课堂答疑(一)|前置篇、C 核心语法实现篇问题集锦
  2. 课堂答疑(二)|C 工程实战篇问题集锦

前置篇 (2讲)

  1. 01|快速回顾:一个 C 程序的完整生命周期
  2. 课前热身|学习这门课前,你需要了解哪些知识?

C 核心语法实现篇 (8讲)

  1. 02|程序基石:数据与量值是如何被组织的?
  2. 03|计算单元:运算符是如何工作的?
  3. 04|控制逻辑:表达式和语句是如何协调程序运行的?
  4. 05|代码封装(上):函数是如何被调用的?
  5. 06|代码封装(下):函数是如何被调用的?
  6. 07|整合数据:枚举、结构与联合是如何实现的?
  7. 08|操控资源:指针是如何灵活使用内存的?
  8. 09|编译准备:预处理器是怎样处理程序代码的?

C 工程实战篇 (16讲)

  1. 10|标准库:字符、字符串处理与数学计算
  2. 11|标准库:深入理解标准 IO
  3. 12|标准库:非本地跳转与可变参数是怎样实现的?
  4. 13|标准库:你需要了解的 C 并发编程基础知识有哪些?
  5. 14|标准库:如何使用互斥量等技术协调线程运行?
  6. 15|标准库:信号与操作系统软中断有什么关系?
  7. 16|标准库:日期、时间与实用函数
  8. 17|标准库:断言、错误处理与对齐
  9. 18|极致优化(上):如何实现高性能的 C 程序?
  10. 19|极致优化(下):如何实现高性能的 C 程序?
  11. 20|生产加速:C 项目需要考虑的编码规范有哪些?
  12. 21|生产加速:如何使用自动化测试确保 C 项目质量?
  13. 22|生产加速:如何使用结构化编译加速 C 项目构建?
  14. 23|实战项目(上):一个简单的高性能 HTTP Server
  15. 24|实战项目(下):一个简单的高性能 HTTP Server
  16. 期中测试|来检验下你的学习成果吧!

C 程序运行原理篇 (7讲)

  1. 25|可执行二进制文件里有什么?
  2. 26|进程是如何使用操作系统内存的?
  3. 27|编译器在链接程序时发生了什么?
  4. 28|程序可以在运行时进行链接吗?
  5. 29|C 程序的入口真的是 main 函数吗?
  6. 30|ABI 与 API 究竟有什么区别?
  7. 31|程序如何与操作系统交互?

结束语 (2讲)

  1. 期末考试|来赴一场满分之约吧!
  2. 结束语|工业 4.0 时代,C 语言还有哪些应用场景?