5 ARM C语言编程

5.1 C语言简史

 

   C 语言的开发是科技史上不可磨灭的伟大贡献,因为这个语言把握住了计算机科技中一个至关重要的并且是恰到好处的中间点,一方面它具备搭建高层产品的能力,另一方面又能够对于底层数据进行有效控制。正是由于这种关联性和枢纽性作用,决定了 语言所导向的近三十年来计算机编程主流方式。    

    C语言的祖先是BCPL语言。

  1967年,剑桥大学的 Martin Richards CPL语言进行了简化,于是产生了BCPLBasic Combined Programming Language)语言。

  1970年,美国贝尔实验室的 Ken Thompson。以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母),并且他用B语言写了第一个UNIX操作系统。

  在1972年,美国贝尔实验室的 D.M.Ritchie B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。

  为了使UNIX操作系统推广,1977Dennis M.Ritchie发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。

  1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.KernighanD.M.Ritchie合著了著名的《The C Programming Language》一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准化协会(American National Standards Institute)在此基础上制定了一个C语言标准,于一九八三年发表。通常称之为ANSI C

  K&R第一版在很多语言细节上也不够精确,对于pcc这个参照编译器来说,它日益显得不切实际;K&R甚至没有很好表达它所要描述的语言,把后续扩展扔到了一边。最后,C在早期项目中的使用受商业和政府合同支配,它意味着一个认可的正式标准是重要的。因此(在M. D. McIlroy的催促下),ANSI1983年夏天,在CBEMA的领导下建立了X3J11委员会,目的是产生一个C标准。X3J111989年末提出了一个他们的报告[ANSI 89],后来这个标准被ISO接受为ISO/IEC 9899-1990

  1990年,国际标准化组织ISOInternational Organization for Standards)接受了89 ANSI C I SO C 的标准(ISO9899-1990)。1994年,ISO修订了C语言的标准。

  1995年,ISOC90做了一些修订,即“1995基准增补1ISO/IEC/9899/AMD1:19951999年,ISO有对C语言标准进行修订,在基本保留原来C语言特征的基础上,针对应该的需要,增加了一些功能,尤其是对C++中的一些功能,命名为ISO/IEC9899:1999

  2001年和2004年先后进行了两次技术修正。

  目前流行的C语言编译系统大多是以ANSI C为基础进行开发的,但不同版本的C编译系统所实现的语言功能和语法规则有略有差别。

 

5.2 C语言特点

    C是高级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

  C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

  C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。

  C语言适用范围大。适合于多种操作系统,如WindowsDOSUNIX等等;也适用于多种机型。

  C语言对编写需要硬件进行操作的场合,明显优于其它高级语言,有一些大型应用软件也是用C语言编写的。

 

一、优点

 

① 简洁紧凑、灵活方便

C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

 

② 运算符丰富

C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。

 

③ 数据类型丰富

C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。

 

④ C是结构式语言

结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

 

⑤ 语法限制不太严格,程序设计自由度大

虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。

 

⑥ 允许直接访问物理地址,对硬件进行操作

由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。

 

⑦ 生成目标代码质量高,程序执行效率高

   一般只比汇编程序生成的目标代码效率低1020%.

 

⑧ 适用范围大,可移植性好

C语言有一个突出的优点就是适合于多种操作系统,如DOSUNIXwindows 98windows NT,也适用于多种机型。C语言具有强大的绘图能力,可移植性好,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画,它也是数值计算的高级语言。

 

 

二、 缺点

 

① C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是CC++的一大区别。

② C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。

 ……………………………………………………

 

 

书籍下载地址(复制到下载工具进行下载):

https://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part1.rar

https://files.cnblogs.com/wenziqi/ARMCortex-M0原理与应用实践.part2.rar

 

注:书籍内容会不定期进行更新!

posted @ 2012-02-18 11:14  温子祺  阅读(2407)  评论(0编辑  收藏  举报