Tip:本章的主要目的是为了让大家了解一下C语言的基本内容,有过C语言学习基础的同学大略看一下就可以了,就当做知识拓展,可以选择跳过。才开始学习的同学需要认真看一遍,第一次学习C语言的大多是看不懂的,看不懂不要紧,就是因为不懂,所以才要带着疑问来钻入C语言的知识海洋中来。学习本章不需要记忆太多知识,顺其自然,用到的时候再翻过来学习查阅。
1.0 学习C语言的基本知识
1.0.1 C语言的来源
C语言诞生于美国的贝尔实验室,由丹尼斯·里奇(Dennis MacAlistair Ritchie)以肯尼斯·蓝·汤普森(Kenneth Lane Thompson)设计的B语言为基础发展而来,在它的主体设计完成后,汤普森和里奇用它完全重写了UNIX,且随着UNIX的发展,c语言也得到了不断的完善。为了利于C语言的全面推广,许多专家学者和硬件厂商联合组成了C语言标准委员会,并在之后的1989年,诞生了第一个完备的C标准,简称“C89”,也就是“ANSI C”。
C语言之所以命名为C,是因为C语言源自Ken Thompson发明的B语言,而B语言则源自BCPL语言。
1967年,剑桥大学的Martin Richards对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。
20世纪60年代,美国AT&T公司贝尔实验室(AT&T Bell Laboratories)的研究员肯·蓝·汤普森(Kenneth Lane Thompson)闲来无事,手痒难耐,想玩一个他自己编的,模拟在太阳系航行的电子游戏——Space Travel。
1969年,美国贝尔实验室的Ken Thompson,以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母),并且用B语言写了初版UNIX操作系统(叫UNICS)。
1971年,同样酷爱Space Travel的丹尼斯·里奇为了能早点儿玩上游戏,加入了汤普森的开发项目,合作开发UNIX。他的主要工作是改造B语言,使其更成熟。
1972年,美国贝尔实验室的丹尼斯·里奇在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。
1973年初,C语言的主体完成。汤普森和里奇迫不及待地开始用它完全重写了UNIX。此时,编程的乐趣使他们已经完全忘记了那个“Space Travel”,一门心思地投入到了UNIX和C语言的开发中。随着UNIX的发展,C语言自身也在不断地完善。直到2020年,各种版本的UNIX内核和周边工具仍然使用C语言作为最主要的开发语言,其中还有不少继承汤普逊和里奇之手的代码。
在开发中,他们还考虑把UNIX移植到其他类型的计算机上使用。C语言强大的移植性(Portability)在此显现。机器语言和汇编语言都不具有移植性,为x86开发的程序,不可能在Alpha、SPARC和ARM等机器上运行。而C语言程序则可以使用在任意架构的处理器上,只要那种架构的处理器具有对应的C语言编译器和库,然后将C源代码编译、连接成目标二进制文件之后即可在哪种架构的处理器运行。
1977年,丹尼斯·里奇发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。
C语言继续发展,在1982年,很多有识之士和美国国家标准协会(ANSI)为了使C语言健康地发展下去,决定成立C标准委员会,建立C语言的标准。委员会由硬件厂商、编译器及其他软件工具生产商、软件设计师、顾问、学术界人士、C语言作者和应用程序员组成。1989年,ANSI发布了第一个完整的C语言标准——ANSI X3.159-1989,简称“C89”,不过人们也习惯称其为“ANSI C”。C89在1990年被国际标准化组织(International Standard Organization,ISO)一字不改地采纳,ISO官方给予的名称为:ISO/IEC 9899,所以ISO/IEC9899:1990也通常被简称为“C90”。1999年,在做了一些必要的修正和完善后,ISO发布了新的C语言标准,命名为ISO/IEC 9899:1999,简称“C99”。在2011年12月8日,ISO又正式发布了新的标准,称为ISO/IEC9899:2011,简称为“C11”。截至2020年,最新的C语言标准为2018年6月发布的“C18”。
C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写系统软件。
当前阶段,在编程领域中,C语言的运用非常之多,它兼顾了高级语言和汇编语言的优点,相较于其它编程语言具有较大优势。计算机系统设计以及应用程序编写是C语言应用的两大领域。同时,C语言的普适较强,在许多计算机操作系统中都能够得到适用,且效率显著。
C语言拥有经过了漫长发展历史的完整的理论体系,在编程语言中具有举足轻重的地位。
(以上内容摘自百度百科:https://baike.baidu.com/item/c%E8%AF%AD%E8%A8%80/105958?fromtitle=c&fromid=7252092)
1.0.2 C程序的运行
Visual C++ 6.0
1. 创建工程
创建文件之前我们先创建一个工程,然后在添加源文件。
首先点击左上角文件-> 新建,然后弹出如下界面:
![](https://i-blog.csdnimg.cn/blog_migrate/e793795ad006dd56d360bfecd7501393.png)
接着选择工程分栏,单击Win32 Console Application,在右侧取工程名称,选择文件存储位置,比如我的工程名称为dotcpp,我存储的位置为G盘的C文件下的BOOK文件里,注意不要存在含有中文字样文件中,防止发生编译错误。样式如下:
![](https://i-blog.csdnimg.cn/blog_migrate/246dddc9f50e6a8f6921e6dfaec25a57.png)
点击确定,弹出如下页面,默认“一个空工程”选项并点击完成。
![](https://i-blog.csdnimg.cn/blog_migrate/b5b7fbfbf01fc63b55ec9c44a51a91e2.png)
弹出如下页面,点击确定。
![](https://i-blog.csdnimg.cn/blog_migrate/255d6e2904eb4a7b58cf3b2a61fb4e6c.png)
2. 创建文件
(1)创建完工程之后我们来创建文件,注意文件扩展名将默认为C++语言,若你想使用C语言,则需在文件名后面加“.c”,如图所示,然后点击确定。
![](https://i-blog.csdnimg.cn/blog_migrate/d080f2751d01ff75029e0c0c1306e87f.png)
然后会出现一个空白文件框,如下图,此时你就可以在里面编写代码。
![](https://i-blog.csdnimg.cn/blog_migrate/f8d4fc887b7b2db2d9f67d138c18d7ce.png)
下面是按钮的相关介绍,可以先编译后执行,也可以一键执行。
![](https://i-blog.csdnimg.cn/blog_migrate/7439e16b534788036bca009316af16ef.png)
点击编译之后会在控制台告诉你错误和警告内容,如果没有则可以点击运行。
![](https://i-blog.csdnimg.cn/blog_migrate/26e591e2f9c253bec76973d7c33167ff.png)
点击运行,点击是。
![](https://i-blog.csdnimg.cn/blog_migrate/0dcfdba8367d0971e10717afa7ef3676.png)
运行如图。
![](https://i-blog.csdnimg.cn/blog_migrate/06563f419f0faeadc45b559e5e9ca4bb.png)
(以上内容源自CSDN:https://blog.csdn.net/m0_61687959/article/details/125394867)
Dev C++
Dev C++ 支持单个源文件的编译,如果你的程序只有一个源文件(初学者基本都是在单个源文件下编写代码),那么不用创建项目,直接运行就可以;如果有多个源文件,才需要创建项目。
新建源文件
打开Dev C++,在上方菜单栏中选择“文件 --> 新建 --> 源代码”:
![](https://i-blog.csdnimg.cn/blog_migrate/f018ee5a9c6d3e0e8d1b0bc686567c05.png)
或者按下Ctrl+N组合键,都会新建一个空白的源文件,如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/5ad68ea5b2b43a389375653a7c014d44.png)
在空白文件中输入本文开头的代码:
![](https://i-blog.csdnimg.cn/blog_migrate/4f83f2f8a9f117a9a7519f265c78df23.png)
在上方菜单栏中选择“文件 --> 保存”,或者按下Ctrl+S组合键,都可以保存源文件。
![](https://i-blog.csdnimg.cn/blog_migrate/5285186453ae8da806213ba797709570.png)
注意将源文件后缀改为.c。
小小的Tip:C++是在C语言的基础上进行的扩展,C++已经包含了C语言的全部内容,所以大部分 IDE 默认创建的是C++文件。但是这并不影响使用,我们在填写源文件名称时把后缀改为.c即可,编译器会根据源文件的后缀来判断代码的种类。上图中,我们将源文件命名为hello.c。
生成可执行程序
在上方菜单栏中选择“运行 --> 编译”,就可以完成 hello.c 源文件的编译工作。
![](https://i-blog.csdnimg.cn/blog_migrate/11c7875f4e053b04da89849a95dfcc65.png)
或者直接按下F9键,也能够完成编译工作,这样更加便捷。
如果代码没有错误,会在下方的“编译日志”窗口中看到编译成功的提示:
![](https://i-blog.csdnimg.cn/blog_migrate/05c04ccdf659eb9a01de48bca638a271.png)
编译完成后,打开源文件所在的目录(本教程中是 E:\cDemo\),会看到多了一个名为hello.exe的文件,这就是最终生成的可执行文件。
之所以没有看到目标文件,是因为 Dev C++ 将编译和链接这两个步骤合二为一了,将它们统称为“编译”,并且在链接完成后删除了目标文件,所以我们看不到。
(以上内容源自CSDN:https://blog.csdn.net/qq_64844180/article/details/123910796)
C语言执行流程为:编辑、预处理、编译、汇编、链接、运行。
本书采用Dev C++作为编写工具。