c语言最近的祖先函数专题 c语言最远距离( 二 )


c语言的发展史C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发 。具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,在程序员中备受青睐 。
C语言是由UNIX的研制者丹尼斯·里奇(Dennis Ritchie)于1970年 由 肯·汤普逊(Ken Thompson)所研制出的B语言的基础上发展和完善起来的 。目前,C语言编译器普遍存在于各种不同的操作系统中 , 例如UNIX、MS-DOS、Microsoft Windows及Linux等 。C语言的设计影响了许多后来的编程语言,例如C++、Objective-C、Java、C#等 。
后来于1980年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局(American National Standard Institution)为C语言订定了一套完整的国际标准语法 , 称为ANSI C,作为C语言的标准 。1980年代至今的有关程序开发工具 , 一般都支持符合ANSI C的语法 。
C语言是一个程序语言,设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言 。C语言也很适合搭配汇编语言来使用 。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性 , 以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台 。
早期发展
C语言最早是由丹尼斯·里奇为了在PDP-11电脑上运行的UNIX系统所设计出来的编程语言,第一次发展在1969年到1973年之间 。之所以被称为“C”是因为C语言的很多特性是由一种更早的被称为B语言的编程语言中发展而来 。早期操作系统的核心大多由汇编语言组成 , 随着C语言的发展,C语言已经可以用来编写操作系统的核心 。1973年,Unix操作系统的核心正式用C语言改写,这是C语言第一次应用在操作系统的核心编写上 。
KR C
1978年,丹尼斯·里奇(Dennis Ritchie)和布莱恩·柯林汉(Brian Kernighan)合作出版了《C程序设计语言》的第一版 。书中介绍的C语言标准也被C语言程序员称作“KR C” , 第二版的书中也包含了一些ANSI C的标准 。KR C主要介绍了以下特色:
【c语言最近的祖先函数专题 c语言最远距离】结构(struct)类型
长整数(long int)类型
无符号整数(unsigned int)类型
把运算符=+和=-改为+=和-= 。因为=+和=-会使得编译器不知道用户要处理i = -10还是i =- 10 , 使得处理上产生混淆 。
即使在后来ANSI C标准被提出的许多年后,KR C仍然是许多编译器的最低标准要求,许多老旧的编译仍然运行KR C的标准 。
ANSI C 和 ISO C
1989年,C语言被 ANSI 标准化(ANSI X3.159-1989) 。标准化的一个目的是扩展KR C 。这个标准包括了一些新特性 。在KR出版后,一些新特性被非官方地加到C语言中 。
void 函数
函数返回 struct 或 union 类型
void * 数据类型
在ANSI标准化自己的过程中,一些新的特性被加了进去 。ANSI也规定了一套标准函数库 。ANSI ISO(国际标准化组织)成立 ISO/IEC JTC1/SC22/WG14 工作组,来规定国际标准的C语言 。通过对ANSI标准的少量修改,最终通过了 ISO 9899:1990 。随后,ISO标准被 ANSI 采纳 。
传统C语言到ANSI/ISO标准C语言的改进包括:
增加了真正的标准库
新的预处理命令与特性
函数原型允许在函数申明中指定参数类型
一些新的关键字 , 包括 const、volatile 与 signed
宽字符、宽字符串与字节多字符
对约定规则、声明和类型检查的许多小改动与澄清

推荐阅读