首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
负能量迪不要
门头沟学院 C++
发布于陕西
关注
已关注
取消关注
@Dreams0000:
🍅07-C++面试之从代码到可执行程序经历
[TOC]0 前述针对于自己在秋招的面试中,对于CPP部分遇到的问题,其中大部分是以此为起点,你可以基于这些点,将自己对于CPP学习的知识点,串联起来。无论面试官,问这一类问题中的某个点,你都应该可以将这一个珠子串联到自己的知识链上来讲。这是一种拓展知识的能力。在此专栏下面个人校招记录:回馈牛客,对CPP做一个小小的总结。本部分关于CPP从代码到可执行程序的4个阶段,以预编译/预处理main.i-->编译main.s-->汇编main.o-->链接 main的顺序来展开叙述,紧接着给出了链接部分的一些细节,最后分别讨论了静态链接和动态链接的优缺点。下面对应的是之前发布的个人校招其他公司面试总结,希望可以更好的帮到你✍✍总结:以代码的方式回看自己23届校招 | 或恐慌、疑惑、好在坚持!🌋大疆DJI 嵌入式 ✨MINIEYE自动驾驶 软开 深圳 实习 🌟百度 嵌入式软开 上海 2022.07🌳深圳杰理科技嵌入式 2022.07.26🌵深圳 诺瓦星云提前批 嵌入式 2022.08.06🌴哲库科技 提前批 2022.08.07🌲经纬恒润 自动驾驶嵌入式 1,2面 2022.08.15😥丰疆智能 嵌入式软开 1,2,3面+4面 2022.08.09🤷♂️一次让我略感疲惫的英文面试--吉利极氪 嵌入式软开🙆♂️♂️【深信服校招】笔试+面试 软件开发工程师🌾ZTE中兴软件工程师 一面+二面 2022.08.29🌱紫光同芯 嵌入式软开 芯片 2022.09.19🌄美团校招面经 嵌入式 1,2面 2022. 09🎋360 软开 一面+二面+ 2022.09这里是CPP一些面试问题整理🥭01-C++面试之C++11新特性总结🍏02-C++面试之static关键字🍑03-C++面试之四种强制类型转换🍋04-C++面试之析构函数和构造函数🍐05-C++面试之多态底层实现:虚表和虚表指针🍎06-C++面试之STL内存管理篇🍅07-C++面试之从代码到可执行程序经历……未完待续1 预编译/预处理主要处理源代码文件中的以#开头的预编译指令。包括1)将#define宏定义替换、宏的展开。2)#if #else #endif条件编译指令。3)将注释消除掉。4)#include头文件包含指令、特殊符号。预编译所完成的基本上是对源程序的“替代”工作。经过上述的这些替代,产生一个没有任何替代的输出文件。生成a.i或a.ii文件。2 编译把预编译之后生成的a.i或a.ii文件,去检查代码是否有语法上的错误,并且对代码优化,进行一些列词法分析,语法分析,语义分析及优化后,生成相应的汇编代码文件。输出.s文件。3 汇编把汇编代码转换成机器码,机器可以执行的指令(机器码)。翻译成机器码,输出.o文件(对应于Windows平台下)或者.obj文件。将编译之后的.s文件,汇编成可重定位的目标文件.o文件。4 链接将不同的源文件产生的目标文件(可重定位的目标文件和printf.o等单独编译)进行链接,从而形成一个可执行程序。静态链接细节静态链接主要有两步:1)空间与地址分配,分配虚拟地址;2)进行符号解析与重定位。空间与地址分配linker将能够获得的所有输入目标文件的段长度,并且将它们合并,计算输出文件中各个段合并后的长度与位置,并建立起映射关系。比如:将各个目标文件.text段合并在一起,.data段合并在一起,并且分配虚拟地址空间。符号解析和重定位分配好空间后,进行真正的核心操作,进行重定位,主要是伴随着符号解析过程,每个目标文件都可能定义一些符号,也可能引用到定义在其他目标文件的符号。而重定位的过程中,每个重定位的入口都是对一个符号的引用,那么当linker需要对某个符号的引用进行重定位时,它就要确定这个符号的目标地址。这时候,linker就会去查找所有输入目标文件的符号表组成的全局符号表,找到相应的符号进行重定位。比如说我们的hello world.c中的main函数并不知道printf这个函数的地址,linker在链接的时候会根据引用到的符号printf,自动去相应的模块查找printf的地址,然后将hello world.c模块中引用到printf的指令进行重新修正,让它的目标地址成为真正的printf函数的地址,这个就是链接的基本过程。链接的分类:静态链接-static(应加入选项)和动态链接静态链接优缺点函数和数据被编译进一个二进制文件,通常以.a结尾,比如某些封装好的算法就是用.a提供给对外的API程序接口被外部调用。在使用静态库的情况下,进行编译链接可执行文件时,linker从库中复制这些函数和数据,并将它们和应用程序的其它模块组合起来,创建最终的可执行文件。1)空间浪费:因为每个可执行程序中对所有需要的目标文件都要有一份副本,所以如果多个程序对同一个目标文件都有依赖,会出现同一个目标文件都在内存存在多个副本。2)更新困难:当库函数的代码修改了,这个时候就需要重新进行编译链接形成可执行程序。3)运行速度快:静态链接的优点就是,无环境依赖,在可执行程序中已经具备了所有执行程序所需要的任何东西,在执行的时候运行速度快。动态链接优缺点其中共享库就是为了解决上述静态库的前两个问题而设计的,在Linux系统中通常使用.so后缀表示;Windows系统上被称之为DLL。具有一下特点:1)动态链接的基本思想是把程序按照模块拆分成各个相对独立部分,在程序运行时才将它们链接在一起形成一个完整的程序,而不是像静态链接一样把所有程序模块都链接成一个单独的可执行文件。加快了编译速度。2)减少内存占用:共享库,就是即使需要每个程序都依赖同一个库,但是该库也不会像静态链接那样在内存中存在多分,副本,而是这多个程序在执行时共享同一份副本。3)更新方便:更新时只需要替换原来的目标文件,而无需将所有的程序再重新链接一遍。当程序下一次运行时,更新的新版本目标文件会被自动加载到内存并且链接起来,程序就完成了升级的目标。4)性能损耗:因为把链接推迟到了程序运行时,所以每次执行程序都需要进行链接,所以性能会有一定损失。
点赞 6
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
02-16 10:48
三一重能_机械工程师(准入职员工)
格力电器内推,格力电器内推码
格力电器硬件面经1. 个人背景介绍;2. 单片机最小构成;3. 项目底板有哪些功能;4. 复位原理;5. 电源有哪几种;6. LDO工作原理;7. LDO效率多大;8. 反激变换器;9. 研究生阶段学过哪些硬件课程;10. 工作地点在珠海怎么看;11. 有接触过电机相关的吗;12. MOS导通条件;13. 反问。格力电器26届春招2月6日正式启动啦!企业简介:作为世界500强企业,格力电器现已发展成为多元化、科技型的全球工业制造集团,产业覆盖家用消费品和工业装备两大领域。【福利待遇】人才公寓及家属过渡房、免费通勤班车、无限流量免费电话卡、科技进步奖、周末双休、健康体检、年休假、五险一金及丰富津...
点赞
评论
收藏
分享
昨天 15:56
上海交通大学 算法工程师
美团推荐算法一面
岗位名称:推荐算法面试时长:1h+自评分:7/10是否下一轮:待通知一、检索与排序在项目中使用的 BM25 原理是什么?相比 TF-IDF 改进在哪里?公式中每一项的含义是什么?(追问)k1 和 b 参数分别控制什么?如果 b=0 会发生什么?为什么在实际系统中要做混合检索?Sparse 检索和 Dense 检索的基本原理分别是什么?(追问)两种方式在长尾 Query 上的表现差异如何?Dense 检索中常见的相似度度量方式有哪些?为什么很多系统选择 Cosine 或 Inner Product?(追问)如果向量没有归一化,Inner Product 和 Cosine 的结果会有什么差异?在你...
技术必备题库
点赞
评论
收藏
分享
2025-12-29 22:43
重庆邮电大学 Java
前端还是版本答案
🌚已经看到前端死过一万次了,我舍友从后端转前端一个月一共就拿到了小厂offer(听起来有点夸张但是是真的,有人指点的情况下),很多人听别人说也好什么也好看到测开觉得测开容易就想转过来,但是实际上测开现在校招是真的算卡学历,和身边的人聊了聊发现双非本进大厂测开的真的是很少数,有几个双非本211硕说自己在组里是学历最底层。现在版本答案还是前端和客户端,前端一个学校同一个工作室在后段连小厂面都难约的情况下我们大二就有人能拿到小红书和腾讯wxg的实习offer,客户端更别说了,只要all in,大厂真的比其他方向容易太多了。
code小黑:
为什么,测开还要劝退,狠狠入啊
点赞
评论
收藏
分享
不愿透露姓名的神秘牛友
2025-12-31 03:40
快手开奖
25.5*16,感觉是个大白菜,应该是最低的了,该不该去
快手求职进展汇总
点赞
评论
收藏
分享
02-16 12:16
科华数据股份有限公司_自动化测试工程师(准入职员工)
科华数据内推,科华数据内推码
科华数据 提前批 硬件工程师(2026届)面经投递时间:7月24日,投完简历过后收到测评,5个工作日内完成。7月30日收到笔试通知,笔试内容包括数电模电电力电子方面的内容(我个人遇到模电里反馈组态考得比较多,还有个Buck拓扑电路题)8月6号收到面试通知8月8日HR电话面试,(HR面没啥专业问题)面试过程很轻松:1.自我介绍2.从自我介绍中凝练三个自身优势3.性格自我评价优缺点4.有做过大功率吗5.有面试其他公司吗?手里有offer吗6.有考虑公务员和电网吗7.对科华有了解吗8.有女朋友吗9.问期望薪资待遇,为什么这个期望,组内师兄姐待遇还有一些不太记得了反问:1.公司晋升渠道。答:技术、管理...
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
嵌入式应届生春招怎么准备——从零到拿 Offer 的系统攻略
773
2
...
关于租房
406
3
...
27届实习近一年的年度经历和总结
389
4
...
HTTP 和 HTTPS 区别
368
5
...
agent实习都干什么?prompt设计
257
6
...
得力嵌入式工程师 二面 面经
206
7
...
美团推荐算法一面
203
8
...
大三无实习
192
9
...
27前端双非找实习
182
10
...
Redis 的 Zset底层是怎么实现的?
173
创作者周榜
更多
正在热议
更多
#
牛客新年AI问运
#
13776次浏览
168人参与
#
牛友们,签完三方你在忙什么?
#
137353次浏览
993人参与
#
牛客AI体验站
#
17849次浏览
302人参与
#
你最讨厌面试被问什么
#
1143次浏览
23人参与
#
担心入职之后被发现很菜怎么办
#
282473次浏览
1185人参与
#
如何缓解入职前的焦虑
#
258831次浏览
1451人参与
#
校招第一份工作你干了多久?
#
139354次浏览
609人参与
#
牛客租房专区
#
151360次浏览
1479人参与
#
秋招开始捡漏了吗
#
229447次浏览
1044人参与
#
秋招投递攻略
#
268776次浏览
2553人参与
#
九月了,是考研还是就业?
#
89198次浏览
556人参与
#
搜狐工作体验
#
4114次浏览
29人参与
#
机械人求职现状
#
33623次浏览
297人参与
#
这份实习,有没有动摇过你的职业方向?
#
2103次浏览
34人参与
#
我是XXX,请攻击我最薄弱的地方
#
61767次浏览
409人参与
#
用友工作体验
#
18082次浏览
151人参与
#
你的工资什么时候发?
#
57461次浏览
355人参与
#
今年秋招还有金九银十吗
#
75086次浏览
506人参与
#
你的实习什么时候入职
#
348065次浏览
2291人参与
#
职场吐槽大会
#
326181次浏览
2249人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务