下面的这一段就是经典的打印字符串代码。但计算机是不可能进行执行的,它不认识这些东西。在没编译之前这些字符和文本txt文件中的字符没什么区别。
#include
int main(){
printf("Hello Wolrd!");
return 0;
}
参考,中只是讲了GCC编译器,当然也有不同的编译器,例如Clang等,常见的一般是GCC。
参考1介绍了编译输出文件的功能和来源。
预编译:就是把文本源程序里的宏命令(简单理解为带“#”的命令),进行处理。
编译:把预编译过的文件转换为汇编语言(注意这里表示的是语言类型不是后面的汇编处理)
汇编:把多个汇编文件的调用关系和函数入口标记添加到汇编文件中得到.O文件。
连接:把经过汇编处理的文件进行连接整合成可执行文件exe(win系统)
虽然只是在win系统中,但其他系统中的实现过程一样。只是在联系到基础硬件的实现接口时不同(汇编文件要考虑物理硬件),所以不同系统的编译器是不同的。
这也是为什么下载软件的时候,有不同的系统版本。一般软件都是IDE而不是纯文本处理,里面一般都包含编译器或者要调用编译器,否则也不能在输出窗口显示运行结果。