版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第一章 c语言概述第一节C语言的发展过程前言:语言是在 70 年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式发表了语言。同时由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUAGE”一书。通常简称为K&R,也有人称之为K&R标准。但是,在K&R中并没有定义一个完整的标准C 语言,后来由美国国家标准协会(American National Standards Institute)在此基础上制定了一个C 语言标准,于一九八三年发表。通常称之为ANSI C。C语言之父里奇在学习C语言之前,我们先了解一下C语言的历史。
2、C语言是一门通用的,模块化,程序化的编程语言,被广泛应用于操作系统和应用软件的开发。由于其高效和可移植性,适应于不同硬件和软件平台,深受开发员的青睐。C语言早期发展 1969 - 1973年在 AT&T 贝尔实验室开始了 C语言的最初研发。根据 C语言的发明者丹尼斯.里奇 (Dennis Ritchie) 说,C 语言最重要的研发时期是在 1972 年。C语言之所以命名为C,是因为 C语言源自 Ken Thompson 发明的 B语言,而 B语言则源自 BCPL语言。C语言的诞生是和UNIX操作系统的开发密不可分的,原先的 UNIX操作系统都是用汇编语言写的,1973年 UNIX操作系统的核心
3、用C语言改写,从此以后,C语言成为编写操作系统的主要语言。K&R C 1978年, Brian Kernighan 和 Dennis Ritchie 出版了一本书,名叫The C Programming Language(中文译名为C程序设计语言)。这本书被 C语言开发者们称为K&R,很多年来被当作 C语言的非正式的标准说明。人们称这个版本的 C语言为K&R C。1988年 Brian Kernighan 和 Dennis Ritchie 修改此书,出版了The C Programming Language第二版,第二版涵盖了ANSI C语言标准。第二版从此成为大学计算机教育有关C语言的经典教
4、材,多年后也没再出现过更好的版本。ANSI C 1970到80年代,C语言被广泛应用,从大型主机到小型微机,也衍生了C语言的很多不同版本。为统一C语言版本,1983年美国国家标准局 (American National Standards Institute,简称ANSI)成立了一个委员会,来制定 C语言标准。1989年 C语言标准被批准,被称为 ANSI X3.159-1989 Programming Language C。这个版本的C语言标准通常被称为ANSI C。目前,几乎所有的开发工具都支持ANSI C标准。是C语言用得最广泛的一个标准版本。C99 在ANSI C 标准确立之后,C语言
5、的规范在很长一段时间内都没有大的变动。1995年 WG14小组对 C语言进行了一些修改,成为后来的 1999年发布的 ISO/IEC 9899:1999标准,通常被成为 C99。 但是各个公司对 C99的支持所表現出来的兴趣不同。当GCC和其它一些商业编译器支持C99的大部分特性的時候,微软和 Borland却似乎对此不感兴趣。C 语言对其它语言的影响 很多编程语言都深受 C语言的影响,比如C+(原先是C语言的一个扩展),C#,Java,PHP, Javascript, Perl,LPC 和 UNIX 的C Shell。也正因为 C语言的影响力,掌握 C语言的人,再学其它编程语言,大多能很快上
6、手,触类旁通。接下来,我们开始具体讲解C语言。要学好一门编程语言,一定要边学边练,你要有一个 C语言的开发工具,在此教程中,我们使用微软的Visual Studio 开发C语言程序。第二节 C语言是当代最优秀的程序设计语言早期的C 语言主要是用于UNIX系统。由于语言的强大功能和各方面的优点逐渐为人们认识,到了八十年代,C开始进入其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用,成为当代最优秀的程序设计语言之一。下面,介绍一下C语言的优秀之处:1. 语言简洁,使用方便灵活 C语言是现有程序设计语言中规模最小的语言之一,而小的语言体系往往能设计出较好的程序。C语言的关键字很少,
7、ANSI C标准一共只有32个关键字,9种控制语句,压缩了一切不必要的成份。C语言的书写形式比较自由,表达方法简洁,使用一些简单的方法就可以构造出相当复杂的数据类型和程序结构。2. 可移植性好 用过汇编语言的读者都知道,即使是功能完全相同的一种程序,对于不同的单片机,必须采用不同的汇编语言来编写。这是因为汇编语言完全依赖于单片机硬件。而现代社会中新器件的更新换代速度非常快,也许我们每年都要跟新的单片机打交道。如果每接触一种新的单片机就要学习一次新的汇编语言,那么也许我们将一事无成,因为每学一种新的汇编语言,少则几月,多则上年,那么我们还有多少时间真正用于产品开发呢?C语言是通过编译来得到可执行
8、代码的,统计资料表明,不同机器上的C语言编译程序80%的代码是公共的,C语言的编译程序便于移植,从而使在一种单片机上使用的C语言程序,可以不加修改或稍加修改即可方便地移植到另一种结构类型的单片机上去。这大大增强了我们使用各种单片机进行产品开发的能力。3. 表达能力强 C语言具有丰富的数据结构类型,可以根据需要采用整型、实型、字符型、数组类型、指针类型、结构类型、联合类型、枚举类型等多种数据类型来实现各种复杂数据结构的运算。C语言还具有多种运算符,灵活使用各种运算符可以实现其他高级语言难以实现的运算。4. 表达方式灵活 利用C语言提供的多种运算符,可以组成各种表达式,还可采用多种方法来获得表达式
9、的值,从而使用户在程序设计中具有更大的灵活性。C语言的语法规则不太严格,程序设计的自由度比较大,程序的书写格式自由灵活。程序主要用小写字母来编写,而小写字母是比较容易阅读的,这些充分体现了C语言灵活、方便和实用的特点。5. 可进行结构化程序设计 C语言是以函数作为程序设计的基本单位的,C语言程序中的函数相当于汇编语言中的子程序。C语言对于输入和输出的处理也是通过函数调用来实现的。各种C语言编译器都会提供一个函数库,其中包含有许多标准函数,如各种数学函数、标准输入输出函数等。此外C语言还具有自定义函数的功能,用户可以根据自己的需要编制满足某种特殊需要的自定义函数。实际上C语言程序就是由许多个函数
10、组成的,一个函数即相当于一个程序模块,因此C语言可以很容易地进行结构化程序设计。6. 可以直接操作计算机硬件 C语言具有直接访问单片机物理地址的能力,可以直接访问片内或片外存储器,还可以进行各种位操作。7. 生成的目标代码质量高 众所周知,汇编语言程序目标代码的效率是最高的,这就是为什么汇编语言仍是编写计算机系统软件的重要工具的原因。但是统计表明,对于同一个问题,用C语言编写的程序生成代码的效率仅比用汇编语言编写的程序低10%20%。尽管C语言具有很多的优点,但和其他任何一种程序设计语言一样也有其自身的缺点,如不能自动检查数组的边界,各种运算符的优先级别太多,某些运算符具有多种用途等。但总的来
11、说,C语言的优点远远超过了它的缺点。经验表明,程序设计人员一旦学会使用C语言之后,就会对它爱不释手,尤其是单片机应用系统的程序设计人员更是第三节 C语言版本概述目前最流行的语言有以下几种:1、Microsoft C 或称 MS C2、Borland Turbo C 或称 Turbo C3、AT&T C这些语言版本不仅实现了ANSI C标准,而且在此基础上各自作了一些扩充,使之更加方便、完美。ISO发布C语言标准新版本 ISO(International Organization for Standardization)于2011年4月正式公布C语言新的国际标准草案。之前被命名为C1X的新标准将
12、被称为ISO/IEC 9899:2011。新的标准修订了C11版本,提高了对C+的兼容性,并将新的特性增加到C语言中。新功能包括支持多线程, 基于ISO/IEC TR 19769:2004规范下支持Unicode,提供更多用于查询浮点数类型特性的宏定义和静态声明功能。根据草案规定,最新发布的标准草案修订了许多特性,支持当前的编译器。今年10月份,ISO ITTF(Information Technology Task Force)开始接手最终草案审查,对此未发表任何评论。 该草案的修改是基于2011年4月通过的N1570 draftPDF。 第四节 C语言的特点1、C语言简洁、紧凑,使用方便、
13、灵活。 ANSI C一共只有32个关键字: 1、auto2、break3、case4、char5、const6、continue7、default8、do9、double10、else11、enum12、extern13、float14、for15、goto16、if17、int18、long19、register20、return21、short22、signed23、static24、sizeof25、struct26、switch27、typedef28、union29、unsigned30、void31、volatile32、while 9种控制语句,程序书写自由,主要用小写字母表示,
14、压缩了一切不必要的成分。 Turbo C扩充了11个关键字:asm _cs _ds _es _ss cdecl far huge interrupt near pascal注意:在C语言中,关键字都是小写的。2、运算符丰富。 共有34种。C把括号、赋值、逗号等都作为运算符处理。从而使C的运算类型极为丰富,可以实现其他高级语言难以实现的运算。3、数据结构类型丰富。4、具有结构化的控制语句。5、语法限制不太严格,程序设计自由度大。6、C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。因此有人把它称为中级语言。7、生成目标代码质量高,程序执行效率
15、高。8、与汇编语言相比,用C语言写的程序可移植性好。但是,C语言对程序员要求也高,程序员用C写程序会感到限制少、灵活性大,功能强,但较其他高级语言在学习上要困难一些。 第五节 C语言面向对象的程序设计语言首先介绍面向对象编程。面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。面向对象程序设计中的概念主要包括:对象、
16、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递。通过这些概念面向对象的思想得到了具体的体现。 1)对象 对象是运行期的基本实体,它是一个封装了数据和操作这些数据的代码的逻辑实体。 2)类 类是具有相同类型的对象的抽象。一个对象所包含的所有数据和代码可以通过类来构造。 3)封装 封装是将数据和代码捆绑到一起,避免了外界的干扰和不确定性。对象的某些数据和代码可以是私有的,不能被外界访问,以此实现对数据和代码不同级别的访问权限。 4)继承 继承是让某个类型的对象获得另一个类型的对象的特征。通过继承可以实现代码的重用:从已存在的类派生出的一个新类将自动具有原来那个类的特性,同时,它还可以拥有
17、自己的新特性。 5)多态 多态是指不同事物具有不同表现形式的能力。多态机制使具有不同内部结构的对象可以共享相同的外部接口,通过这种方式减少代码的复杂度。 6)动态绑定 绑定指的是将一个过程调用与相应代码链接起来的行为。动态绑定是指与给定的过程调用相关联的代码只有在运行期才可知的一种绑定,它是多态实现的具体形式。7)消息传递 对象之间需要相互沟通,沟通的途径就是对象之间收发信息。消息内容包括接收消息的对象的标识,需要调用的函数的标识,以及必要的信息。消息传递的概念使得对现实世界的描述更容易。8)方法 方法(Method)是定义一个类可以做的,但不一定会去做的事。在C的基础上,一九八三年又由贝尔实
18、验室的Bjarne Strou-strup推出了C+。 C+进一步扩充和完善了语言,成为一种面向对象的程序设计语言。C+目前流行的最新版本是Borland C+,Symantec C+和Microsoft VisualC+。C+提出了一些更为深入的概念,它所支持的这些面向对象的概念容易将问题空间直接地映射到程序空间,为程序员提供了一种与传统结构程序设计不同的思维方式和编程方法。因而也增加了整个语言的复杂性,掌握起来有一定难度。第六节 C语言和C+的区别与对比C是C+的基础,C+语言和语言在很多方面是兼容的。因此,掌握了语言,再进一步学习C+就能以一种熟悉的语法来学习面向对象的语言,从而达到事半功倍的目的。差不多是win8跟wi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 快递包装现代化合同协议2025年
- 快递包装采购合同协议2025年
- 实验室安全主题班会课件
- 实验室危废培训
- 中国热带农业科学院热带作物品种资源研究所2026年第一批公开招聘工作人员备考题库及1套完整答案详解
- 云南金江沧源水泥工业有限公司2026年专业技术岗招聘备考题库完整答案详解
- 2026年十五冶金建设集团有限公司招聘备考题库带答案详解
- 2026年黄石市园博文化旅游经营管理有限公司招聘备考题库参考答案详解
- 2026年甘孜州经济和备考题库化局公开招聘企业之家服务大厅工作人员的备考题库及答案详解一套
- 2026年新疆水利发展投资(集团)有限公司面向社会公开招聘备考题库及参考答案详解一套
- 2025贵州铜仁市“千名英才·智汇铜仁”本地引才413人参考笔试题库及答案解析
- 2026年内蒙古商贸职业学院单招职业技能测试题库及参考答案详解一套
- 退赃后赔偿协议书
- 法律基础(西南政法大学)学习通测试及答案
- 信息通信信息化系统管理员操作规范竞赛考核试卷含答案
- 中学语文美育教育论文
- 零缺陷培训课件
- 【新教材】花城版音乐八年级上册-《社会主义好》课件
- 医院旧楼无障碍设施改造专项方案
- 箱变基础知识培训总结课件
- 原油储罐安全知识培训课件
评论
0/150
提交评论