写在最前面的话
一个完整的应用程序,主要由算法,数据结构,程序设计方法,语言工具来完成开发,算法之于程序语言,就相当于时语言是思想的载体,作为较早开发的电脑语言,如今大部分主流电脑语言例如C++,Java,C sharp等在开发时借鉴的C的语法,学好C语言,对于其他语言,也比较容易掌握。
C的起源
C语言时20世纪70年代由贝尔实验室开发,是编写Unix系统的副产物,由于早期计算机系统是由汇编语言编写,难以调试与改进,故Thompson认为需要设计新的语言完成Unix系统未来开发,于是设计了一种B语言,Ritchie加入到Unix项目中,开始改进B语言,称其为NB语言,随着开发越来越偏离B语言,于是改成其为C语言,由于早期硬件设备不同,导致不同机器的汇编语言难以通用,但只要给机器编写C编译器,可以使C语言运行,可移植性是它最受欢迎的一点之一;
C的标准化
Kernighan与Ritchie合作编写的The C Programming Language一书出版,称为C程序员必读书目,由于C语言持续发展,大多数程序员将此书作为C的标准使用,但由于有些关键部分,此书也没有清晰阐述,导致出现部分不可移植的分支,这势必会影响到C语言的主要优势,美国ANSI推动下通过了C89这一C语言标准,现在C语言标准还在更新,例如C99。
C语言的优缺点
1.底层
C语言是一种底层语言,其主要开发目的就是为了Unix系统编程,所以提供了对机器级概念的访问(例如字节与地址),同时有与硬件相关的操作,其底层的特性主要体现在每一条C语句都有对应的汇编代码。
2.小型
C语言是一种小型语言,相对于主流语言c++,Java等有较多的库,C语言的库十分有限,但这也使得程序可移植性更好;
3.包容
由于C语言能够与汇编语言相对应,直接操作硬件,所以开发的自由度非常大,这是C语言的优点同时也是缺点,因为这会导致部分逻辑错误难以被发现,得不到预期结果。
写在最后的话
C语言由于开发效率逐渐淡出主流语言的视野,但其仍然不可忽视,如果硬件处理能力与内存受限那么只能由c/c++开发编译程序,Java难以胜任,但语言越底层,代码量写的就越多,开发效率越低,现如今Java,python由于其优秀的开发效率以及海量的库支持,成为后起之秀,“C生万物”,语言重要,但算法作为其灵魂,更为重要。