首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
08-11 00:54
阿里云_运营_HR
阿里云体感
入职一个多月了,来分享一些landing的感受~整体说下:可以打85分,毕竟当时辞职就是想要走出舒适圈,的确也会有些不舒适,但基本上是因为阿里和网易风格有差别,需要一些时间适应我所在的产品线整体风格不卷,加班不严重,周末大家都安排自己的生活,可以安心放下手机,也让我彻底放下“不秒回羞耻症”阿里云团队规模太大,分工很细,人也很多,想搞清楚一件事情要对接好多好多人,要熟悉的流程也贼多,这个过程的确有些累,但我估计只要在大厂都会这样感觉这边做事情自由度更高,换句话说,老板只要结果,过程怎么做自己想办法去凡事凡人都爱讲价值。初次对接的其他部门的同事,也会直接问我,“你对业务的价值是什么”目前线上线下接...
阿里云工作强度 368人发布
点赞
评论
收藏
分享
08-12 16:32
广东理工学院 Java
海尔你连新华也拒
看到网上有清华研究生投海尔也被拒了,又是被冲击到的一天
投递海尔等公司10个岗位
点赞
评论
收藏
分享
08-11 22:20
门头沟学院 研发工程师
26 届本科,wxg,快手,美团实习经历,求秋招内推
不多说,看简历。
魔法恐龙:
看马赛克吗
点赞
评论
收藏
分享
07-20 12:07
美团_算法实习生(实习员工)
美团的一个逆天组
开局无offer,直接邮件填信息。美团hr加vx,直接要信息,然后问入职日期,问实习工资和房补,直接让我去搜小红书。。中间我表示要晚一点入职,说完沟通也同意了,结果hr就消失,后面快入职时我查官网,发现offer被释放,说我没签合同(我寻思hr也啥也没说我以为就默认延期了。。),最后是mt打电话给我,把流程重新走了一遍。。。融新这边也是,全是租的写字楼,感觉公司随时要跑路了。不过也感谢美团愿意offer吧,虽然没待多久。但组里的hr和ld真是让人反胃(不止我一人认为)
有担当的灰太狼又在摸...:
这hr估计是个实习生吧
实习生的蛐蛐区
点赞
评论
收藏
分享
08-15 11:00
门头沟学院 Java
这下安心了
还没开始就结束了
码农索隆:
是不是刚开始投的时候,心情还挺忐忑,还想着这要是给我发面试了,我应该怎么准备😼
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
小红书java一面
5013
2
...
该不该给领导买东西啊...
4147
美团第二批笔试
热聊中
3
...
秋招准备投这些厂可以吗?
3801
4
...
百度提前批一面凉经!继续复习!
3400
5
...
大疆结构秋招一面
3333
6
...
美团今天的ai coding笔试允许用ai吗
3300
7
...
小红书-引擎架构- java实习-一&二面凉经
2765
8
...
美团第二次笔试 算法题直接白卷投降
2761
9
...
影石嵌入式面经
2731
10
...
美团模型平台后端开发面经
2695
创作者周榜
更多
正在热议
更多
#
你上一次给父母打电话是什么时候
#
14335次浏览
130人参与
#
扒一扒那些奇葩实习经历
#
71777次浏览
935人参与
#
秋招笔面试记录
#
202729次浏览
3478人参与
#
发工资后,你做的第一件事是什么
#
72763次浏览
252人参与
#
在职场上,你最讨厌什么样的同事
#
28340次浏览
208人参与
#
给26届的秋招建议
#
40428次浏览
1026人参与
#
实习的内耗时刻
#
60941次浏览
649人参与
#
我的秋招“寄”录
#
46753次浏览
611人参与
#
秋招投递记录
#
28656次浏览
317人参与
#
节后第一天上班,我的精神状态
#
14024次浏览
122人参与
#
校招第一份工作你干了多久?
#
99380次浏览
439人参与
#
安克创新求职进展汇总
#
40292次浏览
448人参与
#
我的AI电子员工
#
13518次浏览
108人参与
#
今年秋招哪家公司给的薪资最良心?
#
263108次浏览
1459人参与
#
选offer应该考虑哪些因素
#
86626次浏览
768人参与
#
如果校招重来我最想改变的是
#
280052次浏览
2909人参与
#
你最近一次加班是什么时候?
#
80334次浏览
432人参与
#
秋招,不懂就问
#
12719次浏览
135人参与
#
应届生初入职场,求建议
#
240912次浏览
2720人参与
#
工作上你捅过哪些篓子?
#
22348次浏览
140人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务