好文档 - 专业文书写作范文服务资料分享网站

[vip专享]C Primer Plus(第五版)学习笔记

天下 分享 时间: 加入收藏 我要投稿 点赞

C Primer Plus(第五版)学习笔记

第一章 概览1.1 C语言的起源

记住Dennis Ritchie和Ken Thomson。是在设计UNIX操作系统的时候开发的。1.2 使用C语言的理由

C是一种融合了控制特性的现代语言,而我们已发现在计算机科学的理论和实践中,控制特性是很重要的。其设计使得用户可以自然地采用自顶向下的规划、结构化的编程,以及模块化的设计。这种做法使得编写出的程序更可靠、更易懂。

C是一种高效的语言。C程序往往很紧凑且运行速度快。

C是一种可移植语言。由于C与UNIX的紧密联系,UNIX系统通常都带有一个C编译器作为程序包的一部分。Linux中同样也包括一个C编译器。

C强大而又灵活(计算机世界中经常使用的两个词)。

C面向编程人员的需要。它允许您访问硬件,并可以操纵内存中的特定位。它具有丰富的运算符供选择,让您能够简洁地表达自己的意图。

多数C实现都有一个大型的库,其中包含有用的C函数。这些函数能够处理编程人员通常会面对的许多需求。

C的简洁性与其丰富的运算符相结合,使其可能会编写出极难理解的代码。没有谁强迫您编写含糊难懂的代码,但存在这样的可能性。

试问,除C之外还有哪种语言存在一年一度的“含糊代码”(Obfuscated Code)竞赛呢?1.3 C语言的发展方向

不管C++和Java这些较新的语言如何流行,C在软件产业仍然是一种重要的技能,在最想获得的技能中,它一般都列在前10名。特别是在嵌入式系统的编程中,C已开始流行。也就是说,它将用来为汽车、照相机、DVD播放器和其他现代化设备中逐渐普及的微处理器编程。同样,C已开始进入长期以来一直属于FORTRAN的科学编程领域。最后,由于它是一种适合用来开发操作系统的语言,C在Linux的开发中也扮演着重要的角色。1.4 计算机工作的基本原理

CPU的工作非常简单,至少在我们所做的这一简短描述中是这样的。它从内存中获取一个指令并执行该指令,然后从内存中获取下一个指令并执行。一个千兆CPU可以再一秒钟内进行大约一亿次这样的操作,然后CPU能以惊人的速度来从事其枯燥的工作。CPU有自己的小工作区,该工作区由若干个寄存器(register)组成,每个寄存器可以保存一个数。一个寄存器保存下一条指令的内存地址,CPU使用该信息获取下一条指令。获取一条指令后,CPU在另一个寄存器中保存该指令并将第一个寄存器的值更新为下一条指令的地址。CPU只能理解有限的指令(指令集)。还有,这些指令是想到具体的,其中许多指令要求计算机将一个数从一个位置移动到另一个位置,例如,从内存单元移到寄存器。

1.5 高级计算机语言和编译器

采用编译器还有另一个好处。一般来说,每种计算机在设计上都有其自身特有的机器语言。所以用机器语言为一个Intel

Pentium

CPU编写的程序对Motorola PowerPC CPU来说什么都不是。但您可以将编译器匹配一种特定的机器语言。您解决一个编程问题只须一次,然后可以让编译器将该解决方案解释为各种机器语言。1.6 使用C语言的7个步骤第一步 定义程序目标第二步 设计程序第三步 编写代码第四步 编译

编译器是一个程序,其工作是将源代码转换为可执行代码。可执行代码是用计算机的本机语言或机器语言表示的代码。这种语言是由数字代码表示的详细指令组成。不同计算机具有不同的机器语言,C编译器用来将C语言转换成特定的机器语言。C编译器还从C的库中向最终程序加入代码。库中包含着许多标准例程供您使用,例如printf()和scanf()。(更准确地说,是一个被称为链接器(linker)的程序将库例程引入的,但在多数系统上,编译器为您运行链接器。)最后的结果是,形成一个包含计算机可以理解的代码并且您能够运行的可执行文件。第五步 运行程序第六步 测试和调试程序

第七部 维护和修改程序1.7 编程机制

用C语言编写一个程序时,您将编写的内容保存在一个被称为源代码文件的文本文件中。大多数C系统,包括我们提到的那些,都需要该文件的名称以.c结尾。该名称还应该满足特定计算机操作系统的需要。

C编程的基本策略是使用程序将源代码文件转换为可执行文件,此文件包含可以运行的机器语言代码。C分两步完成这一工作:编译和链接。编译器将源代码转换为中间代码,链接器将此中间代码与其他代码相结合来生成可执行文件。C使用被划分为两部分的这一方法使程序便于模块化。您可以分别编译各个模块,然后使用链接器将编译过的模块结合起来。这样,如果需要改变一个模块,则不必重新编译所有其他模块。同时,链接器将您的程序与预编译的库代码结合起来。

中间文件的形式多种选择。最一般的选择,同时也是我们这里讲述的实现方式所采取的选择,是将源代码转换为机器语言代码,将结果放置在一个目标代码文件(或简称为目标文件)中(这里假定您的源代码由单个文件组成)。虽然目标文件包含机器语言代码,但该文件还不能运行。目标文件包含源代码的转换结果,但它还不是一个完整的程序。

目标代码文件中所缺少的第一个元素是一种叫做启动代码(strat-up code)的东西,此代码相当于您的程序和操作系统之间的接口。

例如,您可以在DOS或Linux下运行一个IBM PC兼容机,在两种情况中硬件是相同的,所以都会使用同样的目标代码,但DOS与Linux要使用不同的启动代码,因为这两种系统处理程序的方式是不同的。

所缺少的第二个元素是库例程的代码。几乎所有C程序都利用标准C库中所包含的例程(成为函数)。

链接器的作用就是讲这三个元素(目标代码、系统的标准启动代码和库代码)结合在一起,并将它们存放在单个文件,即可执行文件中。对库代码来说,链接器只从库中提取您所使用的函数所需要的代码。

UNIX下使用cc编译器,Linux下使用gcc,Windows系统下使用集成开发环境。1.8 语言标准

随着C的发展和更加广泛地用于更多种类的系统上,使用C的群体意识到它需要一个更加全面、新颖和严格的标准。为满足这一要求,美国国家标准化组织(ANSI)在1983年设立了一个委员会(X3J11)以发展一个新的标准,该标准于1989年正式采用。这个新标准(ANSI C)定义了语言和一个标准C库。国际标准化组织于1990年采用了一个C标准(ISO C)。ISO C和ANSI C实质上是同一个标准。ANSI/ISO标准的最终版本通常被称为C89或C90.然而,因为ANSI版本是首先出现的,所以人们通常使用ANSI C这一术语。1994年,修订标准的工作开始了,这一努力的结果是产生了C99标

[vip专享]C Primer Plus(第五版)学习笔记

CPrimerPlus(第五版)学习笔记第一章概览1.1C语言的起源记住DennisRitchie和KenThomson。是在设计UNIX操作系统的时候开发的。1.2使用C语言的理由C是一种融合了控制特性的现代语言,而我们已发现在计算机科学的理论和实践中,控制特性是很重要的。其设计使得用户可以自然地采用自顶向下的规划、结构化的编程,以
推荐度:
点击下载文档文档为doc格式
8uev82gbnt3fre38hic91cf865brly010q7
领取福利

微信扫码领取福利

微信扫码分享