0-Preface
最近在学习CSAPP(深入理解计算机系统(第三版))的过程中深感自己C语言的基础有多薄弱,因此打算好好再系统的学习一遍C语言。
本教程学习内容基于之前在网上无意中发现的一本书《C Programming Tutorial》。在我看来,这本书和国内很多课堂上教的C语言书最大的不同是实验代码。不知为何,大学里教的C语言教程给我的就是在不断地做数学题,不断的做数学题。输出个等差数列,等比数列,求个水仙花数。。。没错编程很大的一部分作用是解决生活中实际的问题,但这些教程让我感觉到这门语言只能解决数学题。与计算机相关的内容寥寥无几。编程语言难道不应该是和计算机密切相关吗??
如果打算学好操作系统原理
、软件逆向
、二进制漏洞挖掘
的话,那么C语言就是基石,你一定要学的特别透彻才可以。
比较巧的是,当在学习的过程中,上网搜索不会的问题时,我发现这本书在菜鸟教程有中文翻译版:
C语言教程 | 菜鸟教程https://www.runoob.com/cprogramming/c-tutorial.html
创作不易,您的点赞
就是对我最大的支持。
真心地希望该系列教程可以帮助大家打好C语言的基础。
1-C Language Overview
C 编程语言是一种通用的高级语言,最初由 Dennis M. Ritchie 开发,用于在贝尔实验室开发 UNIX 操作系统。 C 最初于 1972 年在 DEC PDP-11 计算机上实现。
1978 年,Brian Kernighan 和 Dennis Ritchie 制作了第一个公开可用的 C 描述,现在称为 K&R 标准。
UNIX 操作系统、C 编译器和基本上所有的 UNIX 应用程序都是用 C 编写的。由于各种原因,C 现在已成为一种广泛使用的专业语言。
C 最初用于系统开发工作,特别是构成操作系统的程序。 C 被采用为一种系统开发语言,因为它生成的代码运行速度几乎与用汇编语言编写的代码一样快。 使用 C 的一些示例:
- 操作系统
- 语言编译器
- 汇编器
- 文本编辑器
- 打印后台处理程序
- 网络驱动程序
- 现代程序
- 数据库
- 语言翻译
- 实用程序
2-C Environment Setup
在开始之前,需要确保你的电脑上有文本编辑器和C编译器。
文本编辑器比如:Notepad、Vim、VsCode等。
C编译器本书使用GNU C/C++。
(1)Linux下安装GNU C/C++
Linux或Unix默认安装了该编译器、可通过以下命令进行查看:
mrx@Deepin:~/Desktop$ gcc -v
显示结果如下:
(2)MacOS下安装GNU C/C++
MaxOS安装GCC最简单的方式就是直接安装XCode开发环境。XCode可直接应用商店下载即可。
➜ ~ gcc -v
Apple clang version 13.1.6 (clang-1316.0.21.2.5)
Target: x86_64-apple-darwin21.6.0
Thread model: posix