概述
总共三步走,预编译,编译,链接,接下来会讲具体做了啥事儿和场景
预编译
预编译也就是在编译之前做的一个事儿,这里会把一些预编译指令的要求给执行然后替换,预编译指令有 #include #define #ifdef #ifndef #endif #elif #else
预编译的过程就是相当于把预编译指令的东西进行了一个替换,#define M 5 也就是把所有M的地方变成5,把#include的地方变成include的内容,到编译的时候所有预编译指令的任务就完成了,因为已经实施完了所有的替换。
#ifndef hanhan #define hanhan #include "_hanhan_father" class hanhan:hanhan_father{ //用到hanhan_father头文件里的类来进行继承 ... } #endif
解释下这段代码,首先我们入门的时候经常只要编写一个文件就可以了,但是后面如果要做项目和入职工作的话都要编写.h文件进行函数的声明,但是如果我们多个文件都包含了头文件,相当于是把头文件里面的事情做了多次,这样是很耗费时间的,那么我们实际上只要弄一次就够了,所以我们相当于弄了个预编译的宏当标记变量代表只调用一次,这样就避免了无效的编译
这里证明一下,我找到了我文件目录下的stdio.h文件,里面都是些系统调用,然后就是写声明了(因为.h文件会被多个文件所包含,如果有定义或者实现的话就会产生重复
编译
将.c或者.cpp文件编译成一个opj目标文件,这个步骤也就是对源文件产生一个临时文件然后翻译成了机器语言
链接
把opj文件再和标准库链接在一起变成一个可以运行的exe文件