概述
总共三步走,预编译,编译,链接,接下来会讲具体做了啥事儿和场景
预编译
预编译也就是在编译之前做的一个事儿,这里会把一些预编译指令的要求给执行然后替换,预编译指令有 #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文件
原文链接: https://www.cnblogs.com/Lis-/p/12571308.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/337695
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!