C语言 《C Primer Plus (第6版)中文版》 前言
C语言的历史
1972年, 在B语言的基础上,C语言被设计出来。C标准主要历经K&R、C89(或称C90)、C99和C11四个阶段。并不是所有的编译器都支持最新的标准,而且“支持”也有“完全支持”与“不完全支持”之分。
C语言的特点
C语言是面向过程的计算机编程语言。就《C Primer Plus》的作者所言,C语言面向程序员——信任程序员。
C语言比很多编程语言更接近底层,所以其应用很大程度上会涉及硬件。
程序开发的基本步骤
- 定义程序的目标
- 设计程序
- 编写代码
- 编译
- 运行程序
- 测试和调试程序
- 维护和修改程序
值得注意的是成功的第一步和第二步会大大减少第三步和第六步所花的时间。
C的编程机制
C编程的基本策略是用程序把源代码文件转换为可执行文件(其中包含能直接运行的机器语言代码)。典型的C实现通过编译和链接这两个步骤来完成这一过程。编译器把源代码转换成中间代码,链接器把中间代码和其他代码合并,生成可执行文件。所谓“其他代码”是指在操作系统与程序间通信的启动代码和由所包含的库文件编译而来的目标代码。
如何编写并运行代码
不同系统中不同编译器、集成开发环境(IDE)编译C程序的操作会有所不同,于此仅以Win10系统的CodeBlocks17.12为例。
首先,打开CodeBlocks,点击左上角的File,可以选择new中的Empty file或Project。
【】前者一般用于不调用C标准以外的库文件的情况,多用于测试一小段代码,写完代码后点击上方Biuld,再点击子菜单中的Build(ctrl-F9)。如果之前没有保存,此时软件会要求进行保存。若代码有错误,则无法编译成功,此时该做的是根据报错进行错误排除。编译成功后系统会在源代码所在的目录生成一个可执行文件。可以点击run运行可执行文件,也可以另外打开命令行提示符(cmd.exe)来运行该可执行文件(具体方法会在后续的重定向、标准I/O部分讲述)。
【】后者一般用于需要调用个人库文件的情况,随着学习的深入这种情况会越来越多。点击Project后,点击在弹出窗口中的projects子菜单中的Console application后点击右上角的Go,之后选择C,完成工程名和目录填写的事宜后,进入最终步骤。最终的选择可以如下图所示。
如果要调用的库文件尚未存在,需要程序员自己写相应的代码。此时可以直接新建空文件(new中的Empty file),会有是否要将该文件添加到当前工程项目的提示,若要,进行相应操作即可,相关文件会被存储于main.c所在的目录。如果要调用的库文件已经存在,点击上方的Project后点击Add files之后在进行相应操作即可。
至于调用个人库文件的#include指令如何使用,这点会在后续的预处理指令的部分讲述。
值得一提的是,一般不要使用Microsoft visual studio进行C开发。因为它甚至无法完全支持C90。就《C Primer Plus》的范围而言,CodeBlocks可以满足除必须额外调用命令行以外的一切需求,而且它似乎是免费的。
一些约定
《C Primer Plus》将Enter、Ctrl、Return或其他用于发送命令的键统称为Enter键。本博客系列将遵从这一约定。
出于我本人的习惯,一段既有计算机输出、也有用户输入的文字中,加粗部分代表用户输入,其他部分若无特殊说明则为计算机输出。
若无特殊说明,一切操作均在Win10系统上进行。