点击上方蓝字关注我,了解更多咨询
语言是一种通用的程序设计语言。它同UNIX系统之间具有非常密切的关系。C语言是在UNIX系统上开发的,且无论是UNIX系统本身还是其上运行的大部分程序,都是C语言编写的。但是C语言并不受限于任何一种操作系统或机器。由于C语言使用用来编写编译器和操作系统,因此被称为“系统编程语言”。
C语言的很多重要概念来源于BCPL语言,BCPL对C语言的影响间接地来自于B语言。BCPL和B语言都是“无类型”的语言,而C语言提供了很多数据类型,其基本类型包括:字符、具有多种长度的整型和浮点数,以及通过指针、数组、枚举、结构和联合派生的各种数据类型。表达式由运算符和操作数组成。任何一个表达式,包括赋值表达式或函数调用表达式,都可以是一个语句。指针提供了与具体机器无关的地址算术运算。
Basic Combined Programming Language(BCPL)是一种早期的高级语言。1967年由剑桥大学的Matin Richards在同样由剑桥大学开发的CPL语言上改进而来。BCPL最早被用做牛津大学的OS6操作系统上面的开发工具。1970年,贝尔实验室的Ken Thompson在BCPL的基础上改进出了B语言,用于书写UNIX。这个名字取自BCPL中的第一个字母。B语言使用的时间更短,因为三年后的1973年同样是贝尔实验室的D.M.RITCHIE将B语言进一步改进,并且取了BCPL中的第二个字母将其命名为C语言。
C语言为实现结构良好的程序提供了基本的控制流结构:语句组、条件判断(if-else)、分支选择(switch)、循环(while、for)、提前跳出循环(break)等。
函数可以返回基本类型、结构、联合或指针型的值。任何函数都可以递归调用。局部变量通常是“自动的”,即在每次函数调用时重新创建。一个C语言程序的不同函数可以出现在多个单独编译的不同源文件中。变量可以只在函数内部有效,也可以在函数外部但仅在一个源文件中有效,还可以在整个程序中都有效。
C语言可以处理大部分计算机能够处理的对象,比如字符、数字和地址。这些对象可以通过具体机器实现的算术运算符和逻辑运算符组合在一起并移动。
C语言不提供直接处理诸如字符串、集合、列表或数组等复合对象的操作。虽然可以将整个结构作为一个单元进行拷贝,但C语言并没有处理整个数组或字符串的操作。除了由函数的局部变量提供的静态定义和堆栈外,C语言没有定义任何存储器分配工具,也不提供堆和无用内存回收工具。另外,C语言本身没有提供输入/输出功能,没有READ或WRITE语句,也没有内置的文件访问方法。所有这些高层的机制必须由显示调用的函数提供。
类似的,C语言只提供简单的单线程控制流,即测试、循环、分支和子程序,它不提供多道程序设计、并行操作、同步和协同例程。
尽管缺少某些特性看起来好像是一个严重不足(这意味必须通过调用函数来实现),但把语言保持在一个适度的规模会有很多益处,可以用比较小的篇幅将它描述出来,这样也很容易学会。尽管如此。对于大量的程序设计应用来说,C语言是一种公认的非常高效的、表示能力很强的语言。
END
*声明:本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。
戳“阅读原文”我们一起进步