《C primer plus》速通(第一章)
【速过C primer plus】第一章·初识C语言
一、C语言程序设计步骤
1)定义程序目标
无论程序大小,请定制明确的程序需求,可以通过《软件需求》来训练自己写需求文档。
2)设计程序
对程序组成进行分析,例如分析如何分配函数功能、程序文件、头文件,可以通过绘图来设计出程序的组成。可以采用uml语言来绘制程序模型。
3)编写代码
创建.c文件编码。实际上目前的IDE基本不支持创建.c文件,所以可以用.cpp文件进行代替。.h文件为头文件,.c文件和.cpp文件都是源文件。
4)编译
此处的编译是一个很长的、由计算机执行的过程,计算机根据一定标准和规则把.c文件转化成目标文件。【机组会深入研究编译全过程】
5)运行程序
常见IDE提供运行程序的功能,如果不使用IDE可以把目标文件夹打开,找到工程名.exe程序双击即可运行。
6)测试和调试程序
debug是程序设计必须的过程,程序员必须要会使用IDE自带的debug工具来给编程过程提供帮助。我在这方面几乎是0基础,之后会使用vs2019作为IDE把一些debug工具的使用方法加在笔记中。
7)维护和修改代码
通过软件测试过程来测试软件的可靠性。这是测试工程师的事情,小程序不需要进行维护和测试。
二、编译过程
编译过程需要通过四个程序对文件进行处理,预处理器->编译器->汇编器->链接器。
预处理器
生成.i文件(ASCII文件,即纯文本文件)
(1)、处理所有的注释,以空格代替
(2)、讲所有的#define删除,并且展开所有的宏定义
(3)、处理条件编译指令
(4)、处理#include,展开文件包含
(5)、保留编译器需要使用#pragma指令
编译器
生成.asm文件(ASCII文件)
(1)、对预处理文件进行语法分析、词法分析、语义分析
语法分析:分析表达式是否遵循语法规则
词法分析:分析关键字,标识符,立即数是否合法
语义分析:在语法分析基础上进一步分析表达式是否合法
(2)、分析结束后进行代码优化生成相应的汇编代码文件
汇编器
生成.obj文件(二进制文件)
(1)、汇编器将汇编代码转变为机器可以执行的指令,也就是机器指令
(2)、每条汇编指令几乎都对应一条机器指令
链接器
链接是指将目标文件最终生成可执行文件(二进制文件)
根据链接方式的不同,链接过程可以分为:
1、静态链接:目标文件直接进入可执行文件
2、动态链接:在程序启动后才动态加载目标文件
链接器的意思:链接器的主要作用是把各个模块之间相互引用部分处理好,使得各个模块之间能够正确的链接
此处参考了[华哥-2088][ https://blog.csdn.net/liuchunjie11/article/details/80252811 ]的博客