在上期说过,计算机使用二进制语言工作,而我们编写程序时,使用的是高级语言(倾向于日常对话的语言),在高级语言和二进制中需要编辑器进行一定的转化,以下是转化的流程图,
我们用C++编写的程序是“源程序(.cpp为扩展名)”,这一步被称位编辑。
而由编辑所得到的源文件,由编辑器编译,在编译过程中编译器会对源程序进行词法和语法的检查,如果有错,会显示出错信息,如下图
一般在编辑器显示的错误信息分为两种,一种是错误(error)就是图中的那个红叉,另一种是警告(warning)就是图中的那个⚠,警告指不会影响程序运行的小问题,比如使用scanf函数,或未使用到一个已经被定义的变量等等,而当编辑检查到错误时不会将源程序转化成目标程序(扩展名为.obl),必须改正才能继续。如果程序没有任何问题,则会如图下
在我们源程序变成目标程序时,仍然不能运行(虽然它是电脑可读的机器码),下一步我们要用系统
提供的”连接程序“将所有的目标程序和系统的库文件(库函数)以及系统提供的其他信息连接起来,最终才得到一个可执行的二进制文件。
就像我们制作电子产品,我们在电脑中设计电路图(源程序),由这个电路图制作电路板(目标程序),最后电路板要和其他的零件(库文件和系统其他信息)连接在一起,才能变成一个可使用的电子产品(可执行的目标程序)。