1)设计特性
C语言融合了计算机科学理论与实践的控制特性。C语言的设计理念让用户能够轻松地完成自顶向下的规划,结构化编程和模块化设计。因此,C程序更易懂,更可靠。
2)高效性
C语言在设计上充分利用了计算机的优势。C程序相对更紧凑,运行速度很快。C语言具有微调控能力,可以根据需求微调程序以获得最大的运行速度或最有效地使用内存。
3)可移植性
C语言是可移植的。这意味着在一种系统中编写的C程序,稍作修改或不做修改就能在其它系统中运行。
主要得益于C语言有着诸多针对不同系统的编译器。
4)功能强大而灵活
适用范围管阔,几乎可以被用于任何领域
5)面向程序员
C语言是为了满足程序员的需求而设计的,拥有丰富的运算符和数据类型,让程序员能够简洁地表达自己的意图。
大多C实现都有一个大型的库,包含众多有用的C函数。
二、计算机结构简述几乎所有的现代计算机都具有【冯诺依曼结构】,主要包含五个部分:
1)运算器
2)控制器
3)存储器
4)输入设备
5)输出设备
其中,运算器和控制器就是CPU(中央处理单元,Central Processing Unit)的组成部分。所以,在计算机中,CPU承担绝大部分运算工作。
存储器可分为RAM、ROM和永久内存存储设备
1)RAM:随机存取内存,可以高速读写数据,但断电后,其存储的内容会全部丢失
2)ROM:只读存储内存,只能读出,不能写入
3)永久内存存储设备:磁盘(机械硬盘),闪存(固态硬盘)
三、CPU工作原理简述控制器模型
1)指令寄存器IR(Instruction Register):存储正在执行或即将执行的指令
2)程序计数器PC(Program Counter):存放下一条指令的地址,具有自动增量计数的功能
3)存储器地址寄存器MAR(Memory Address Register):在访问内存时存放内存单元的地址
4)存储器数据寄存器MDR(Memory Data Register):访问内存时,存分对内存写入或从内存读出的数据
5)控制电路:产生控制信号,控制计算机的各个部件的动作
6)指令译码器:对IR中存放的指令进行译码,以确定指令的内容
运算器模型
1)核心部件ALU:算术逻辑单元,用于完成算术运算和逻辑运算
2)通用寄存器:一般含有n个,用于临时存放数据。一个通用寄存器中的数据可能来自内存,也可能来自其它通用寄存器,或者来自ALU的输出
3)ALU的输入寄存器:一般有两个寄存器作为ALU的输入
4)ALU的输出寄存器:用于接收ALU的运算结果
5)Flag:也是一个寄存器,用于存放状态值(0、正负、进位、溢出等)
CPU执行指令的步骤
取指——译码——执行——回写
1)取指:PC存储下一条指令的地址,并将此地址通过MAR送给存储器,在控制电路的操控下,存储器读取接收到的地址,并将地址用对应数据通过MDR送给IR。最后,PC中的指令地址自动更新
2)译码:IR中的指令被送入译码器
3)执行:明确指令内容后,执行指令
4)回写:将执行结果写入通用寄存器或内存
四、编译器编译器是一种将高级语言编写的程序翻译成机器语言指令集的程序
使用合适的编译器或编译器集,就可以把一种高级语言程序转换成供不同类型CPU使用的机器语言程序
五、编程机制C程序的编译过程:源文件——目标代码文件——可执行文件
1)源文件:以.c结尾的存储C代码的文本文件
2)目标代码文件:通过编译器将源文件的内容翻译成二进制指令,就形成了目标代码文件
3)可执行文件:目标代码文件中只包含由源文件翻译的内容,还缺少启动代码和库函数。通过链接器将启动代码、库代码和目标代码合并到一起,形成可执行文件



