1.1 C语言的历史
1.1.1 起源
1.1.2 标准化
1.1.3 基于C的语言
- C++:包括了所有C特性,但增加了类和其他特性以支持面对对象编程。
- Java:基于C++,所以也继承了C的许多特性。
- C#:由C++和Java发展起来的一种新的语言。
- Perl:最初是一种非常简单的脚本语言,在发展过程中采用了C的许多特性。
C语言学习原因:更好理解基于C的语言的特性,如:C++,Java,C#,Perl。
1.2 C语言的优缺点
C语言的优缺点源自最初用途(编写操作系统和其他系统软件)和自身的基础理论体系。
- 底层语言:C语言提供了对机器级概念(字节和地址)的访问,以适应系统编程的需要,
还提供了与计算机内置指令紧密协调的操作,使得程序可以快速执行。- 小型语言:C语言提供了一套更有限的特性集合,因此较依赖一个标准函数的“库”。
- 包容语言:给予用户更广阔的自由度,没有强制进行详细的错误检查。
1.2.1 优点
- 高效:发明用以编写以往由汇编语言编写的应用程序,所以要在有限的内存空间里快速运行。
- 可移植:当程序必须在多种机型(从个人计算机到超级计算机)上运行时,常用C语言进行编写。
- 功能强大:C语言拥有一个庞大的数据类型和运算符集合,几行代码就可以实现许多功能。
- 灵活:最初设计是为了系统编程,现在也可以用于编写从嵌入式系统到商业数据处理的各种应用程序。
C语言在其特性使用上的限制非常少,允许其他语言认定的非法操作(例如:C语言允许一个字符与一个整数(浮点数)值相加)。- 标准库:C语言的突出优点,标准库包含了数百个可以用于输入/输出、字符串处理、存储分配以及其他实用操作的函数。
- 与UNIX系统的集成:C语言在与UNIX系统(包括Linux系统)结合方面特别强大。
1.2.2 缺点
- 容易隐藏错误:C语言的灵活性导致用它编程出错的概率会比较高,C编译器难以检查出与其他语言类似的错误。
C语言还包含大量不易觉察的隐患。- 难以理解:C语言有许多其他通用语言没有的特性(并且常常被误解)和C程序简明扼要的特性。
- 难以修改:如果在设计中没有考虑到维护问题,那么用C语言编写的大规模程序将很难修改。遗憾的是,C语言也没有“类”和“包”这种可以把大程序分解成许多更容易管理的模块的特性。