当前位置:首页 > 公众号精选 > 小麦大叔
[导读]提到C语言,很多人的第一反应是:C语言,不都过时了?还有必要研究吗? 当然有必要。用一个词来形容:C生万物。听起来有点浮夸,但也没说错。现今这个世界上,几乎所有重要的软件都跟C有关系: 主流操作系统是C写的,绝大多数语言的编译器也是C写的,数据库、网络、硬件驱动、服务器应用等等,...

提到 C 语言,很多人的第一反应是:C 语言,不都过时了?还有必要研究吗?

 当然有必要。用一个词来形容:C 生万物。
听起来有点浮夸,但也没说错。现今这个世界上,几乎所有重要的软件都跟 C 有关系: 主流操作系统是 C 写的,绝大多数语言的编译器也是 C 写的,数据库、网络、硬件驱动、服务器应用等等,都是 C 写的。说霸气点儿,这个世界就是在 C 语言之上运行的。而且在这些领域,C 语言是完全的“垄断”,连竞争者都没有。 所以,扎心的就来了——“会不会 C 语言是软件工程师和社畜的分界线” 。毕竟,真正的高手,就得掌握计算机是如何组成的,程序是如何运行的,编译器是如何把高级语言转化成 CPU 指令的,网络设备是如何传送数据的...等等,而这些,都要跟 C 语言打交道,说白了,C 语言就是内功。 

而且众所周知,现如今几乎所有的编程语言,都是以 C 语言为基础拓展的:C 、Java、Go、Python、JS 等等,所以你会发现,学好了 C 语言,别的语言都很容易上手,更不会因为“语言层出不穷”而焦虑。当然,你也可以跳过 C 语言学其他的语言,不过,技术债迟早是要还的。

 不夸张地说,想要成为高手,就必须吃透 C 语言。只有如此,你的技术之路才能走得更远。

 所以,与其吐槽说 C 语言“过时”,不如想想,如何更好地拥抱、使用它。毕竟,大部分人学 C 之路都颇为坎坷,会遇到很多困难,比如:

 
  • C 语言的的语法很基础,但学完又感觉什么都不会?
  • 指针是如何灵活使用内存的?
  • 如何编写高性能代码?
  • 编译器在链接程序时发生了什么?
  • ....
 我的经验,学好C语言,除了简单的语法外,更重要的是要搞懂 C 程序从编写到编译,再到被运⾏的整个细节。分享我当初的学习路径: 
  • 掌握基本语法,理解 C 程序的运行细节;

  • 掌握标准库,性能优化以及工程化内容,搞懂如何写一个可以用在生产实践中的 C 程序;

  • 掌握编译、链接、加载以及和操作系统的交互,搞懂 C 程序是如何运⾏起来的。
 当年我啃的时候并不容易,难点在于系统性的资料不好找,市面上所谓“0 元送、免费”的资料,不仅只有基础语法,更是零散不成体系,学了一堆跟没学一样,云里雾里的。 从体系化这个层面,我还是比较推荐老朋友「极客时间」的,他们最近出了个专栏 ——《深入 C 语言和程序运行原理》早在专栏打磨阶段,我就参与了调研,现在上线了,读了几篇,还不错,想跟大家分享一下,先来看专栏总结的学习路线图,建议收藏

 

 
这个专栏最大的感触是 —— 完全按照程序员的学习痛点来设计的: 先聚焦于 C 语言的核心语法,带大家了解编译器是如何在机器指令层面实现它们的;其次介绍现代 C 语言标准库中的一些重要功能,及背后的运作机制;接着详解适合编写高性能的 C 代码,也是工程化相关的重要内容。最后,探讨二进制可执行程序是如何在与操作系统的协同工作下被运行。 从这 4 个层面,跟着看下来,你就能深入理解 C 程序的完整生命周期。原价 129 元,用极客时间「隐藏优惠」到手¥89。 扫码看目录、免费试读


 早鸟+口令「cyuyan666」到手仅¥89新人无需口令,¥59 拿下 

C 语言高效学习路径

 专栏作者是「于航」,PayPal 技术专家,也是 QCon 和 GMTC 大会优秀讲师和出品人。18 年那会,还深度参与了 Emscripten 编译器工具链项目的研发工作,在推动国内 Wasm 技术的发展和落地实践方面出了不少力。 最早是在极客时间的「每日一课」里看到他出的视频,对他提到的 C 语言的学习方式,印象非常深刻,而这次专栏的设计逻辑就是聚焦 C 语言核心语法 → C 项目工程化技巧 → 深入 C 程序运行。

主要分为四个模块: 
  • 前置篇
 专栏中涉及到了计算机体系结构、汇编语言等较为底层的基础知识,为避免读者的知识盲区,所以会快速带你了解汇编语言、寄存器等内容,并且回顾一个 C 程序从编写到运行的完整过程;还会用一个比较复杂的 C 程序,带大家快速回顾 C 语言的核心语法。 
  • C 核心语法实现篇
 梳理 C 语言7大核心语法“背后的故事”,带你了解编译器如何在汇编层面实现这些语法。通过这一模块的学习,你会对 C 程序的运行细节有着更深刻的理解,从而可以更好地掌握并优化程序运行。 
  • C 工程实战篇
 介绍 C 语言在大型工程实战的必备技巧。包括: 
  • 快速掌握 C 标准库的重要功能,以及这些功能背后的实现原理;
  • 掌握编写高性能C 代码、编码规范、结构化测试与编译等,这些 C 项目工程化的实用技巧。
 
  • C 程序运行原理篇
 介绍 C 程序是如何通过编译,并最终被操作系统运行的。程序的运行涉及到众多与操作系统的交互细节,你将在这个模块里详细了解。 说了这么多,一起来看下目录吧下面


再说一遍优惠:

 原价 129 元早鸟+口令「cyuyan666」到手仅需¥89新人无需口令,¥59 拿下 扫码看免费试读 


 时至今日,C 语言作为最“古老”的编程语言之一,仍然“老当益壮”、生生不息。这一切靠的不是巧合,而是绝对的实力。 而要发挥 C 语言的最大威力,我们就不应该只简单了解它的语法,而应该在此基础上进一步了解代码如何被编译,程序如何被运行。只有当完整的“链路”建立在脑海中时,你才对程序有了最完全的把控。 点击「阅读原文」,这次吃透 C 语言。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

嵌入式开发作为信息技术领域的重要分支,其涉及的语言种类繁多,各具特色。这些语言的选择取决于目标平台的特性、性能需求、开发者的熟练程度以及项目的具体要求。本文将详细介绍几种常见的嵌入式开发语言,包括C语言、C++、汇编语言...

关键字: 嵌入式开发 C语言

Java语言和C语言是两种不同的编程语言,它们在语法、特性和应用领域上有许多差别。下面将详细介绍Java语言和C语言之间的差异以及它们各自的技术特点。

关键字: Java语言 C语言 编程

嵌入式系统是一种专门设计用于特定应用领域的计算机系统,它通常由硬件和软件组成,并且被嵌入到其他设备或系统中,以实现特定的功能。在嵌入式系统的开发过程中,选择适合的编程语言是至关重要的。C语言是一种被广泛应用于嵌入式系统开...

关键字: 嵌入式 计算机 C语言

C语言是一种广泛应用于软件开发领域的编程语言。它是由贝尔实验室的Dennis Ritchie在20世纪70年代初创建的,旨在为UNIX操作系统的开发提供一种高级编程语言。C语言具有简洁、高效、可移植性强等特点,因此成为了...

关键字: C语言 操作系统 应用程序

嵌入式系统是现代生活中无处不在的一部分。它们包括了我们的家电、汽车、智能手机、医疗设备等等。这些系统的工作必须高效、可靠,因为它们往往控制着生活中的关键方面。而C语言作为一种广泛用于嵌入式系统开发的编程语言,其质量和稳定...

关键字: 嵌入式系统 C语言 编程

在嵌入式系统开发领域中,C语言是使用最广泛的编程语言之一。它具有高效、灵活和可移植的特点,成为嵌入式系统设计师的首选语言。本文将介绍C语言编程的基本概念、特点以及在嵌入式系统开发中的应用。

关键字: 嵌入式系统 C语言 编程

C语言编译器是一种用于将C语言源代码转换为可执行程序的软件工具。它的主要功能是将C语言代码翻译成机器语言,以便计算机能够理解和执行。C语言编译器通常包括预处理器、编译器、汇编器和链接器等多个组件,它们协同工作以完成编译过...

关键字: C语言 编译器 Microsoft Visual C++

Matlab和C语言的区别是:1、用途不同;2、语法不同;3、运行速度不同;4、可移植性不同;5、代码管理不同。Matlab是一种数值计算和科学计算工具

关键字: matlab语言 C语言 系统编程

单片机是一种集成电路,它包含了中央处理器、存储器、输入输出接口和时钟等基本部件。单片机广泛应用于各种电子设备中,如家用电器、汽车电子、医疗设备等。单片机的使用领域已十分广泛,如智能仪表、实时工控、通讯设备、导航系统、家用...

关键字: 单片机编程 单片机 C语言

一直以来,嵌入式都是大家的关注焦点之一。因此针对大家的兴趣点所在,小编将为大家带来嵌入式的相关介绍,详细内容请看下文。

关键字: 嵌入式 C语言
关闭