初识C语言
C语言起源
1972年 贝尔实验室,距今已有半个世纪的发展里程了;从诞生到至今一直是最重要、最流行的编程语言之一。
C语言的特性:
- 模块化设计和结构化编程,程序更易懂、更加可靠;
- 代码紧凑简洁,程序更小;运行速度快;
- 可移植性好;
- 灵活、自由的同时,也让使用者承担了更大的责任。
模块化设计:C语言的设计一个重要理念,把整体的实现按逻辑分割成多个不同的模块(源代码文件)进而使程序变得有条理易于维护;由此,C语言设计者们引入了编译器和链接器。来实现这一伟大的理念。具体见下图:
编译器:把模块化的源代码文件翻译成对应的目标文件(机器语言);
链接器:把这些目标文件和相关的库文件以及程序执行的其他一些文件 链接成一个可执行的程序文件(a.exe)。
结构化编程:C语言设计者们为了让程序更加的简洁易懂;引入了函数以及函数的嵌套、调用、传参、返回值等。使得代码具有一定的层次结构,如在Main函数中可以调用其他的函数,让具有不同功能的代码形成相对封闭和独立的区域,通过传参和返回值的形式又不失之间的联系。达到了复杂逻辑的简洁化,体现了有目的结构化设计。
可移植性:C语言没有过多的数据类型以及实现功能的数据结构,自身没有太多的载重和负荷;这使得C语言变得非常的轻便灵活;这可能对于程序员来说并不友好,所有的任务都要自己承担解决,包括数据是否越界、内存垃圾的回收以及是否存在野指针等一系列的问题;所以说,C语并不适合在应用层做业务开发的您。相反地,它对机器是很友好,因为不需要做更多的工作;几乎所有的硬件设备都通用C语言开发的代码。比如汽车音响设备的开发代码可以移植到家用设备上,windows下开发的源码可以移植到Linux或者Mac OS系统上都可以完美运行。
C语言编程机制:C语言的可移植性:包括在UNIX,Linux, windows ,Mac OS等环境中使用,首先 程序员编写代码的文件称为源代码文件,都要求文件名以.c结尾; C语言的分而治之思想:基本策略就是把源代码文件转换为可执行文件(机械语言);典型的C语言主要通过编译和链接来实现这一过程的。
C语言在计算机上的工作原理
主要构成:
- 中央处理单元(cpu): 承担绝大部分的运算工作;
- 随机存取内存(RAM):存储程序和文件的工作区;
- 永久存储设备(机械硬盘、固态硬盘):计算机关闭后,也不会丢失数据;
- 输入、输出设备(I/O)。
CPU的工作原理:
它从内存中获取并执行一条指令,然后再从内存中获取并执行下一条指令;由若干个寄存器组成, 每个寄存器存储一个数字;也有储存下一条指令内存地址的寄存器,用此来不断地获取和更新指令;CPU能理解的指令集合叫做指令集。储存在计算机中的所有内容都是数字,计算机以数字形式储存数字和字符。每个字符都有一个字符码。包括指令也是以数字形式存储的;这一数字指令码就是机器语言(计算机唯一能识别的语言体系)。
C语言标准
ANSI/ISO 标准c89或者c90,不同组织的不同版本而已。标准定义完全相同。1994年 ANSI/ISO 联合发布了c99标准;2011年标准委员会发布了C11标准,对于C11标准,我们浅尝辄止,简单了解。