c和c++程序在运行时各阶段的处理过程图:
一、预处理、预编译阶段:在这阶段很快就会生成“.i”文件生成,在“.i”文件中会把代码中所有的注释删掉,把宏定义过的变量赋予真值包含的头文件c和c++都会很直接的直接把头文件的相关内容直接复制粘贴过来。
二、编译:此阶段会把代码中的错误查找出来,就是把已经预编译的文件编译成汇编代码的过程,整个过程会包含语法,词法的分析,和一些优化操作。
三、汇编:此阶段是把代码翻译过来,变成目标代码,也就是二进制文件
四、链接: 链接过程是将单个编译后的文件链接成一个可执行程序。前面的预编译、汇编、编译都是正对单个文件,以一个文件为一个编译单元,而链接则是将所有关联到的编译后单元文件和应用的到库文件,进行一次链接处理,之前编译过的文件 如果有用到其他文件里面定义到的函数,全局变量,在这个过程中都会进行解析。