C Primer Plus 第一章 概览
特点:a. 可移植性,面向编程人员。
b. 封装性与安全性(不足)。
其余略。
1.4 计算机工作的基本原理(P4 CPU的工作)
存储在计算机中的一切内容都是数字。
补充:
一. 计算机硬件系统五大部件
1.运算器(算数逻辑运算单元,ALU,Arithmetic Logic Unit)
功能:对数据进行各种算术运算和逻辑运算,即对数据进行加工处理。
2.控制器(Controller)
组成:由指令寄存器,状态寄存器,指令译码器,时序电路,控制电路等组成。
功能:从内存中一次取出命令,产生控制信号,向其他部件发出指令,指挥整个运算过程。
3.存储器
功能:存储程序、数据和各种信号、命令等信息。
(1)内存储器,简称内存或主存,是CPU能直接寻址的存储空间。
(2)外存储器,简称外存或辅存,如硬盘。
4.输入(input)设备
将程序、数据等转换成电信号存入内存中,如键盘、鼠标、扫描仪、光笔等。
5.输出(output)设备
将计算机的处理结果转变为人们接受的形式输出,如显示器、打印机、绘图仪等。
注:
(1)控制器、运算器和寄存器(registers)等组成硬件系统的核心,即中央处理器(CPU)。
(2)常将运算器、控制器、内存三者合称为主机。
二. 电子计算机三大核心部件
1.中央处理器(CPU,Central Processing Unit)
是一块超大规模集成电路;
是计算机的运算核心(core)和控制中心(control unit);
解释计算机指令以及处理计算机软件中的数据;
主要包括运算器(ALU)和高速缓冲存储器(Cache),以及实现它们之间联系的数据(Data)、控制及状态的总线(Bus)。
2.内部存储器(Memory)
由半导体元件制成;
内存又称为主存,是CPU能直接寻址的存储空间;
计算机中所有程序的运行都是在内存中进行的;
暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。
3.输入/输出(I/O)设备
三. RAM与ROM
1.RAM(Random Access Memory,随机存储器)
与CPU直接交换数据的存储器;可读可写,随时读写,断电时数据会自动消失。
通常说的电脑内存2G、4G,CPU里用的高速缓存,内存条等即为RAM。
2.ROM(Read-only memory,只读存储器)
一旦存储资料则无法再将其改变或删除。
此类存储器多用来存放固件,比如计算机启动的引导程序,手机、MP3、MP4、数码相机等一些电子产品的相应的自带程序代码。
3.EPROM、EEPROM、Flash ROM(NOR Flash,NAND Flash)
性能与ROM差不多,但可改写,在U盘,MP3中应用广泛。
注:
(1)在计算机中,RAM一般用作内存(2G,4G,8G等)。
(2)ROM用来存放一些硬件的驱动程序,也就是固件。
(3)硬盘是外存(256G,512G等)。
1.5 高级计算机语言和编译器
机器语言与高级语言。
编译器:将源代码转换成可执行代码的程序。
1.6 使用C语言的7个步骤
(1)定义程序目标。
(2)设计程序。
(3)编写代码。
(4)编译。
(5)运行程序。
(6)测试和调试程序。
(7)维护和修改程序。
整理:
一.源代码与目标代码
(1)源代码:人为编写的代码称为源代码,源代码保存的文件称为源代码文件,简称源文件。一般该文件以.c结尾,如concrete.c。
(2)目标代码:编译器将源代码转换成目标代码。本质上是将源代码转换为机器语言代码,目标代码保存的文件称为目标代码文件,简称目标文件。一般该文件以.obj结尾,如concrete.obj。
注:
(1)目标代码是一个中间代码,并不是完整的程序,不能执行。
(2)编译器相当于将高级语言翻译成了机器语言,目标代码包含源代码的转换结果。
(3)文本本身是代码,内容保存在文件。
二.启动代码与库例程代码
目标代码缺少两个元素。
(1)启动代码(start-up code):相当于程序与操作系统之间的接口。
(2)库例程的代码:标准C库中的例程(称为函数)的目标代码。例如,源代码使用了printf()函数,则目标代码文件中仅有使用该函数的指令的目标代码,而没有该函数本身的目标代码。该函数本身的目标代码存储在另一个被称为“库”的文件中。库文件中包含许多函数的目标代码。
三.编译、连接与可执行文件
(1)编译:编译器将源代码转换为目标代码。
(2)链接:链接器将目标代码(.obj)与系统的标准启动代码和库代码结合在一起,并将它们存放在单个文件中,即可执行文件。一般该文件以.exe结尾,如concrete.exe。对于库代码而言,链接器仅从库中提取所使用的函数的目标代码。
注:
(1)目标文件和可执行文件都是由机器语言指令组成的。
(2)目标文件只包含所编写的代码转换乘的机器语言,可执行文件还包含库例程和启动代码的机器语言。
(3)一般而言,编译器自动启动链接器,所以会说编译器将源代码转换成了可执行代码。
P8 图1.4 编译器和链接器
1.7 编程机制
集成开发环境(IDE,Integrated Development Environment)是用于提供程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具。