人类之间的交流有赖于语言的产生,例如英语、汉语、日语、德语等等语言,语言是一桥梁沟通这人类。然而计算机之间也通过语言来彼此沟通,这就是计算机语言,目前较为流行的计算机语言有C、C++、Java、python等等。其中C语言具有重要的意义,任何比C语言低级的计算机语言都不可以完全具备C语言的功能,而一切比C语言高级的语言都通过C语言来实现。因此作为初学者,C语言一般作为学习的第一种计算机语言。
C语言的历史
C语言是在B语言的基础上发展而来的,1969年贝尔实验室的肯 汤普森与丹尼斯 里奇一起开发了Unix操作系统。Unix是用汇编语言写的,为了移植到其他计算机,汤普森就在BCPL语言的基础上发明了B语言。
在1972年,达尼斯 里奇 和布莱恩 柯林汉在B语言的基础上重新设计了C语言。此后整个Unix系统使用C重写,C语言就传播开来,广泛运用各种操作系统和系统软件的开发。因此也说C语言最初是作为Unix系统的开发工具而发明的。
C语言标准化
由于各个地区和国家之间使用C语言的规则上略有不同,影响了C语言的传播性和可移植性,因此在不同时期制定了不同的C语言标准。
K&B标准,最开始时期的C语言标准是,由c语言的创始人规定的。
C89 由美国国家标准协会(ANSI)正式将C语言标准化,标志着C语言开始稳定和规范化。
C95
C99 国际标准组织(ISO)发布的新的C语言标准,简称C99
C11
C17
C2x
C语言编写的程序运行过程
C语言是一门高级语言,方便人类的编写和理解,但是对与计算机而言,计算机只能识别二进制语言(即机械语言),因此C语言写的源代码需要经过一系列操作才可以变成可以被计算机识别的可执行文件。
源代码变成可执行文件所需要的步骤:预处理 编译 汇编 链接
预处理:预处理执行的功能包括将注释去除,文件包含,条件编译,宏定义的替换。预处理后的文件后缀由.c变为了.i,仍然是文本文件,但是文件一般会变大。
编译:将预处理后的代码转化为汇编代码,在这里说明一下汇编代码的意思(汇编代码由汇编语言写成,它是介于高级计算机语言和机器语言之中,是一种低级的编程语言,使用支付好来面熟操作码(即机器语言)与高级语言不同,汇编语言可以直接访问计算机架构的硬件资源,因此在性能方面具有优势。汇编语言,移植性差,一般对某类型cpu,二秘阁类型的cpu都有自己的汇编语言)
汇编:汇编代码变为机器代码。
这一步产生的叫做目标文件,是二进制格式。这一步会为每一个源文件产生一个目标文件。文件后缀为.o或者.obj。
4.链接---链接过程将多个目标文件以及所需的库文件链接成最终的可执行文件。
链接---链接过程将多个目标文件以及所需的库文件链接成最终的可执行文件。
(编译由编译器完成,由于大部分编译器中有汇编器功能,所以汇编也在其中完成)