1、C语言的起源
说起C语言,于是有人会问:他为什么不叫A、B、D语言或者其它?
答案是因为C语言就是从A语言、B语言进化而来的,好吧,你又问,那么为什么后来没有了D语言、E语言!我只能说:你去问一下盖茨,为什么window 2000之后windows不叫windows2001,而叫xp了,为什么ipad5不叫ipad5而改叫ipad air了,答案是:洗洗睡吧。
好了,言归正传,让我看一下C语言的发展历史:
它的原型ALGOL 60语言(也成为A语言)
1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。
1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。
1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。意思是将CPL语言煮干,提炼出它的精华,并且他用B语言写了第一个UNIX操作系统。
1973年,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
1977年,为了使UNIX操作系统推广,Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《The C Programming Language》,从而使C语言成为目前世界上流行最广泛的高级程序设计语言。
1988年,随着微型计算机的日益普及, 出现了许多C语言版本。由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准
2、C语言的特性
C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能, 许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的, 用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。
C语言是一种计算机程序设计语言。
它既具有高级语言的特点,又具有汇编语言的特点。
它可以作为工作系统设计语言,编写系统应用程序——windows、 Linux、unix操作系统本身就是使用C语言编写的。
也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序——我们前面编写的个税计算器就是此类程序。
它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。
优点:
1)简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2)运算符丰富
C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3)数据类型丰富
C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。 同时对于不同的编译器也有各种
4)C是结构式语言
结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
5)语法限制不太严格,程序设计自由度大
虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。
6)允许直接访问物理地址,对硬件进行操作
由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。
7)生成目标代码质量高,程序执行效率高
一般只比汇编程序生成的目标代码效率低10へ20%。
8)适用范围大,可移植性好
C语言有一个突出的优点就是适合于多种操作系统,如DOS、UNIX、windows 98.windows NT;也适用于多种硬件类型,如:arm、milps、x86、score等。
3、C语言的标准演变
1)ANSI C / C89标准
1970到80年代,C语言被广泛应用,从大型主机到小型微机,也衍生了C语言的很多不同版本。
1983年美国国家标准局 (American National Standards Institute,简称ANSI)成立了一个委员会,来制定 C语言标准。
1989年 C语言标准被批准,被称为ANSI X3.159-1989 "Programming Language C",俗称ANSI C或C89标准。
1990年,国际标准化组织ISO(International Organization for Standards)接受了1989年的ANSI C为 ISO C 的标准,命名为ISO/IEC 9899:1990,简称C90标准。不过习惯上仍然叫C89标准。
1994年,ISO修订了C语言的标准。
1995年,ISO对C90做了一些修订,即“1995基准增补1(ISO/IEC/9899/AMD1:1995)”
在ANSI标准化后,C语言的标准在一段相当的时间内都保持不变,尽管C继续在改进。
2)C99标准
1999年,ISO又对C语言标准进行修订,在基本保留原来C语言特征的基础上,针对应该的需要,增加了一些功能,命名为ISO/IEC 9899:1999,俗称C99标准。
3)C11标准
2001年和2004年先后进行了两次技术修正。
2011年12月8日,ISO正式公布C语言新的国际标准,命名为ISO/IEC 9899:2011,俗称C11标准。
4、C语言的运行过程
那么我们如何使用C语言完成我们想要的任务呢?
使用C语言编写程序需要经过以下几个步骤:
1)编辑器:我们编写代码的软件,如:记事本、word、notepad等。
2)编译器:检查用户代码的一些语法错误并且将其编译成汇编代码(又分为预编译、编译)。
3)汇编器:将编译出来的文件变成目标代码(windows 下的.obj文件)
4)连接器:将目标代码连接成为可执行文件(.exe),及双击就可以运行文件。
5)集成开发环境(Integrated Development Environment, 简称IDE):是用于程序开发环境的应用程序。
一般包括代码编辑器、编译器、调试器和图形用户界面工具。如:VC6.0、C_Free等。
(.c .cpp)源代码-》编译器-》(.s)汇编代码-》汇编器-》(.o)目标代码、库文件-》链接器-》可执行程序
详见《》