1.6 C语言的优势

学习一门编程语言,应该知道这门语言有什么优势,如C语言的优势就是效率高、灵活度高、可移植性高。

1.效率高

我们说C语言效率高是针对其他第三代编程语言来讲的,C语言是编译型语言,源代码最终编译成机器语言,也就是可执行文件,从此CPU就可以直接执行,如图1-6所示。

图1-6 编译型语言

除了编译型语言,目前很流行的还有解释型语言,像Python、Ruby、JavaScript这些都是解释型语言。解释型语言不直接编译成机器语言,而是将源代码转换成中间代码,然后发送给解释器,由解释器逐句翻译给CPU来执行,如图1-7所示。这样做的一个好处就是可以实现跨平台的功能,缺点就是效率相对要低一些,因为每执行一次都要翻译一次。

图1-7 解释型语言

打个通俗易懂的比喻:编译型语言就是做好一桌子菜再开吃;而解释型语言就是吃火锅,想吃什么,就下什么料。很明显,吃火锅相对是比较费时间的。

2.灵活度高

说到灵活度,恐怕没几门语言可以跟C语言相媲美。C语言不仅提供多种运算符,还可以完成类似计算机底层操作的位运算,语法简单、约束少,拥有丰富多变的结构和数据类型,还拥有可以直接操作计算机硬件的能力。这一点大家在学习到指针的时候将深有体会。指针可以说是C语言的灵魂,C语言有多灵活和强大,完全取决于使用者对指针这一知识点的掌握程度。所以学C语言的人,有些成了“大神”,有些仍然是初学者水平。

3.可移植性高

可移植性高是指源代码不需要做改动或只需稍加修改,就能够在其他机器上编译后正确运行。

统计资料表明,对单片机来说,不同机器上的C语言编译程序80%的代码是公共的,因此使用C语言的编译程序更便于移植。另外,无论是Windows、Linux还是苹果的Mac OS系统,抛开现象看本质,它们都与C语言有着不可分割的联系。