1. C语言简述:入门首选
1972年,为了解决Unix操作系统的可移植性问题,丹尼斯·里奇(Dennis Ritchie)与布莱恩·柯林汉(Brian Kernighan)在B语言的基础上共同开发了C语言,并在 DEC PDP-11 计算机上被首次实现。此后,Unix操作系统使用C语言重写,并迅速应用于各类操作系统、系统软件、底层结构程序的研发,我们今天所使用的类Unix操作系统比如Linux,就是使用C语言开发的。
在几十年后的今天,C语言仍然是使用最广泛的高级编程语言之一,其他高级编程语也由C语言衍生而来,由此C语言也被称为现代高级编程语言的鼻祖。
2. C语言特点:简单、高效、自由
简单、高效、自由,结合起来就是用简单的代码实现更多的功能,而且还支持自定义。
简单:C语言可以结合标准库文件使用简短的代码实现基本功能,它不同于Web开发语言,它只有少量的依赖,语法规则也很容易理解。
高效:C语言是偏向系统底层的开发语言,虽然语法简单,但能实现的功能却很强大,可以直接操作硬件,底层处理性能十分优秀,尤其是指针语法的运用,更是展现了C语言的简单、高效特点。
自由:C语言是很灵活的语言,它对程序员的限制很少,支持自建各种数据结构,还可以自己操作、管理内存,为程序员提供了极大的编程自由。当然,有机遇也有挑战,操作内存这一行为很危险,容易使程序崩溃,建议初学者不要轻易尝试。
当然C语言也有其缺点:对于新手来说,比web开发更加枯燥,C语言编写的程序看不到好看的界面,很大一部分时间都要待在小黑框或者控制台,而且调试起来非常麻烦,但是不要怕,只要肯实践,就一定能学好,并且很熟练地运用C语言。
3. C语言用途:系统编程
前面已经介绍过了,C语言适用于系统底层的开发,而且相对于Web开发语言来说代码很简洁,这可能是因为面向的项目不同,如果使用C语言开发网站,估计会比PHP、Java等语言更复杂,所以说各有千秋:
比较 | C语言 | Web开发语言(php、java等) |
用途 | 操作系统、编译器、驱动程序、协议栈、嵌入式开发…… | 网站、APP、企业级应用开发等 |
特点 | 代码简洁、性能高效 | 代码复杂、项目依赖多、高并发 |
编译方式 | 直接编译运行 | 解释执行、先编译后解释、即时编译(JIT) |
内存管理 | 手动管理 | 自动管理内存机制(GC) |
语法 | 面向过程开发,基本数据类型,可以自定义高级类型,没有类、对象等概念 | 面向对象思想,支持复杂的数据类型和高级语法特性 |
学习难度 | 基本是手写代码,较难 | 框架、类库多,较容易 |
4. C语言版本:C89、C99
最开始发布的是K&R C版本,以两位研发C语言的大佬的姓名首字母命名,但在当时还没有形成标准,他们合写了一本教材:《The C programming language》,感兴趣可以去读一下。
1989年ANSI C制定一套C语言标准,也就是现在的C89标准,1990年ISO通过了这项标准,所以ANSI C标准也称为C89或C90标准。
再后来1999年C89版本进行了大幅度更新,增加了很多实用的语言特性,按照年份命名也称为C99版本。C99版本是目前来说最流行的版本。本系列讲解的就是C89、C99版本
后面的C11、C17版本中新增的特性用的比较少,而且我觉得后面的几次更新偏移了方向,使用C++语言代替更为合适。
注意:现在主流的编译器,比如GCC、LLVM,也不完全支持C标准的特性
5. 小结
- C语言是一种广泛应用于底层开发的高级编程语言
- C语言的特点是简单、高效、自由,但也面临巨大的挑战
- C语言主要用于操作系统、驱动程序、嵌入式开发等底层领域的开发
- C语言流行的版本是C89、C99版本,本教程也是使用的这两个版本