ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

浅谈C++编译过程

2020-03-25 23:01:38  阅读:188  来源: 互联网

标签:文件 浅谈 father C++ 编译 hanhan include define


概述

总共三步走,预编译,编译,链接,接下来会讲具体做了啥事儿和场景

 

预编译

预编译也就是在编译之前做的一个事儿,这里会把一些预编译指令的要求给执行然后替换,预编译指令有 #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文件

 

标签:文件,浅谈,father,C++,编译,hanhan,include,define
来源: https://www.cnblogs.com/Lis-/p/12571308.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有