c 语言历史简介
C是一种通用的编程语言,广泛用于系统软件与应用软件的开发。于1969年至1973年间,为了移植与开发UNIX操作系统,由丹尼斯·里奇与肯·汤普逊,以B语言为基础,在贝尔实验室设计、开发出来。
c 语言的特点
- 高效(运行速度快,因为偏底层)
- 灵活(相对于其他高级语言的封装局限性,c 更加灵活)
- 功能丰富(c 拥有完备的标准库)
- 表达力强(相对于汇编,语义化更加清晰)
- 较高的可移植性等特点(在不同的硬件软件架构可以保持相同的行为)
特性
- C语言是一个有==结构化==程序设计、具有变量作用域(variable scope)以及递归功能的==过程式==语言。
- C语言传递参数均是以值传递(pass by value)[3],另外也可以传递指针(a pointer passed by value)。
- 不同的变量类型可以用结构体(struct)组合在一起。[4]
- 只有32个保留字(reserved keywords),使变量、函数命名有更多弹性。[5]
- 部分的==变量类型可以转换==,例如整数型和字符型变量。[6]
- 通过指针(pointer),C语言可以容易的对存储器进行低端控制。[7]
- 编译预处理(preprocessor)让C语言的编译更具有弹性。[8]
c 的 89 标准库
[图片上传失败...(image-333f7f-1649234996797)]
在C99中增加了六个库
- <complex.h>
- <fenv.h>
- <inttypes.h>
- <stdbool.h>
- <stdint.h>
- <tgmath.h>
拓展
结构化编程(英语:Structured programming),一种编程典范。它采用子程序、块结构、for循环以及while循环等结构,来取代传统的 goto。希望借此来改善计算机程序的明晰性、质量以及开发时间,并且避免写出面条式代码。
面条式代码(Spaghetti code)是软件工程中反面模式的一种[[1]](https://zh.wikipedia.org/wiki/面条式代码#cite_note-William-1),是指源代码的控制流程复杂、混乱而难以理解[2],尤其是用了很多GOTO、例外、线程、或其他无组织的分支。其命名的原因是因为程序的流向就像一盘面一样扭曲纠结。面条式代码的产生有许多原因,例如没有经验的程序设计师,及已经过长期频繁修改的复杂程序。结构化编程可避免面条式代码的出现
[图片上传失败...(image-50603d-1649234401400)]