You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
5.7 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 深入C语言和程序运行原理
## 你将获得
* 7 大 C 核心语法背后的实现细节
* 快速掌握 C 标准库的功能与原理
* C 项目工程化的 4 类实用技巧
* 深入 C 程序运行的全流程
## 讲师介绍
于航PayPal 技术专家极客时间专栏《WebAssembly 入门课》作者QCon 和 GMTC 大会优秀讲师、出品人。
现负责 PayPal Compliance Platform 相关的技术研发和管理工作。个人研究方向主要为 Web 前端基础技术架构、WebAssembly、编译及虚拟机技术。擅长 JavaScript、C/C++、x86 汇编。曾出版国内第一本 WebAssembly 技术书籍《深入浅出 WebAssembly》。2018 年,深度参与 Emscripten 编译器工具链项目的研发工作,并致力于推动国内 Wasm 技术的发展和落地实践。
## 课程介绍
提到学习 C 语言,不知道你有没有这样的疑惑:
* C 语言这么基础,大家基本都熟悉啊,还需要从头开始学吗?
* 用 C 语言做应用层开发时,总感觉无从下手,和 Python、Java 比起来C 语言产出效率是不是太低了?
* 在新语言层出不穷的今天C 语言已经诞生这么久了,会不会就要过时了?
* ……
其实这些都可以归结为两个问题。第一个C 语言可以用来干啥?第二个,学 C语言学习重点是什么
**C 语言远远没有过时**,甚至可以说,这个世界上几乎所有重要的软件都与 C 有着直接或间接的关系。C 语言精确的程序控制能力和高效的运行时性能,让它被广泛应用于实现操作系统、嵌入式系统应用、编译器、数据库、驱动程序,以及服务器应用等较为底层和基础的系统级程序。
而且,即使你不使用 C 语言进行开发,**深入学习 C 语言,也是你修炼编程内功、成为高手的必经之路**。C 语言抽象层次低,学习它能够让你从基础层面了解程序是如何工作的。理解了计算机系统底层运作机制,你在设计更复杂、性能更高的程序时,就能得心应手、融会贯通。
不过,如果要发挥 C 语言的最大威力,只掌握 C 语言的基本语法是远远不够的。**我们还需要深入到 C 语言的内部,去了解⼀个 C 程序从编写到编译,再到被运⾏的整体流程细节。**只有做到“知其然”并“知其所以然”,方能运用自如,百战不殆。
于是,我们和于航老师一起设计了这门“不一样的 C 语言课”,想要带你从新的视角来学习 C 这门“旧”的语言。
## 课程模块设计
这门课分为四个模块,从 C 语言的核心语法实现到 C 程序的运行原理,带你掌握 C 程序从编写到运行的全链路法则。
#### 前置篇
快速了解汇编语言、寄存器这些较为底层的基础知识,并且回顾一个 C 程序从编写到运行的完整生命周期。另外,还会用一个比较复杂的 C 程序,带你快速回顾 C 语言的核心语法。
#### C 核心语法实现篇
梳理 C 语言7大核心语法“背后的故事”带你了解编译器如何在汇编层面实现这些语法。你会对 C 程序的运行细节有更深刻的理解,从而更好地掌握并优化程序运行。
#### C 工程实战篇
介绍 C 语言在大型工程实战中的必备技巧,主要包括:快速掌握 C 标准库的重要功能,以及这些功能背后的实现原理;掌握编写高性能 C 代码、编码规范、结构化测试、结构化编译这些 C 项目工程化的实用技巧。
#### C 程序运行原理篇
为你介绍一个 C 程序是如何通过编译,并最终被操作系统运行的。程序的运行涉及到众多与操作系统的交互细节,你将在这个模块里详细了解。
![](https://static001.geekbang.org/resource/image/41/9a/41a2c8587a87e0838334c313f47ebb9a.jpg)
## 课程目录
![](https://static001.geekbang.org/resource/image/fb/19/fb38ec231129e33a361ce9c29556de19.jpg)
## 适合人群
对C语言或类C语言的基础语法有一定了解想深入学习C语言和程序运行原理的人群。
## 特别放送
#### 免费领取福利
[![](https://static001.geekbang.org/resource/image/16/13/1664800067c250a67yy94c57d0e76c13.jpg?wh=1035x360)](https://time.geekbang.org/article/428647)
#### 限时活动推荐
[![](https://static001.geekbang.org/resource/image/67/a0/6720f5d50b4b38abbf867facdef728a0.png?wh=1035x360)](https://shop18793264.m.youzan.com/wscgoods/detail/2fmoej9krasag5p?dc_ps=2913145716543073286.200001)
## 订阅须知
1. 订阅成功后推荐通过“极客时间”App端、Web端学习。
2. 本专栏为虚拟商品,交付形式为图文+音频,一经订阅,概不退款。
3. 订阅后分享海报,每邀一位好友订阅有现金返现。
4. 戳此[先充值再购课更划算](https://shop18793264.m.youzan.com/wscgoods/detail/2fmoej9krasag5p?scan=1&activity=none&from=kdt&qr=directgoods_1541158976&shopAutoEnter=1),还有最新课表、超值赠品福利。
5. 企业采购推荐使用“[极客时间企业版](https://b.geekbang.org/?utm_source=geektime&utm_medium=columnintro&utm_campaign=newregister&gk_source=2021020901_gkcolumnintro_newregister)”便捷安排员工学习计划,掌握团队学习仪表盘。
6. 戳此[申请学生认证](https://promo.geekbang.org/activity/student-certificate?utm_source=geektime&utm_medium=caidanlan1)订阅课程享受原价5折优惠。
7. 价格说明:划线价、订阅价为商品或服务的参考价,并非原价,该价格仅供参考。未划线价格为商品或服务的实时标价,具体成交价格根据商品或服务参加优惠活动,或使用优惠券、礼券、赠币等不同情形发生变化,最终实际成交价格以订单结算页价格为准。