C语言的优缺点

C语言是当前最受欢迎的程序设计语言之一。然而由于C语言用以编写操作系统和其他系统软件的预期用途及自身的基础理论体系,C语言也具有其固有的优缺点。

C语言的优点主要包括以下几个方面:

  • 高效性。C语言生成目标代码的效率高,一般只比汇编程序生成的目标代码效率低10%-20%,执行快速且占用内存少。
  • 可移植性。标准化有效地促进了C程序在各类C语言编译器间的可移植性。同时C语言编译器规模小且容易编写也有力地支撑了C程序跨硬件、跨操作系统的可移植性。
  • 功能强大。C语言具有丰富的数据类型和运算符,表达能力、计算能力和逻辑判断功能强大。
  • 灵活性。C语言具有精简的关键字和控制语句,语言简洁紧凑。语法灵活,书写形式自由。允许直接访问物理地址,支持直接操作硬件。
  • 标准库。C语言是小型语言,具有功能多样的标准库,支持输入输出,字符串处理和存储分配等操作。

C语言的缺点主要有以下两点:

  • 灵活性。C语言的灵活性是把双刃剑,用得不好的话会使C程序漏洞百出,安全性难以保证。C语言的灵活性也带来了应用方式的多样性,造成程序可能难以理解。
  • 难以修改。C语言缺乏封装机制,如果在后期发现设计中的问题,程序将难以修改。C语言缺乏对数据的封装,也是出现安全性问题的一个重要原因。

面对C语言的优势和缺点,如何高效地使用C语言呢?K.N. King在《C Programming: A Modern Approach》(中文译名:C语言程序设计-现代方法)一书中提出了以下7条建议:

  • 规避C语言的缺陷
  • 利用软件工具(lint等)使程序更可靠
  • 利用现有的代码库
  • 采用一套切合实际的编码规范
  • 避免投机取巧和极度复杂的代码
  • 使用标准C,少用K&R C
  • 避免不可移植性

参考文献

  1. http://langpop.com/
  2. K.N. King 著,吕秀峰 译. C语言程序设计-现代方法. 人民邮电出版社
  3. https://en.wikipedia.org/wiki/Lint_(software)

你可能感兴趣的:(C语言)