首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
什么是内存对齐?内存对齐有什么意义?2.请简述C++中函数调
[问答题]
什么是内存对齐?内存对齐有什么意义?
2.
请简述
C++
中函数调用过程并解释栈帧的概念。(可以举例说明)
添加笔记
求解答(0)
邀请回答
收藏(28)
分享
纠错
5个回答
添加回答
1
The_last_piece
内存对齐是指编译器调整对象字段的偏移量 , 从而优化读取速度的一种技术 .
内存对齐能减少cpu的
访存次数
.
函数调用的过程是 :
将当前运行地址压入栈中 .
将参数压入栈中 , 如果参数较少的话会直接存到寄存器中 .
跳转到目标函数地址 .
执行函数体 .
销毁局部变量和函数形参 .
弹出调用者的运行地址 .
跳转回调用方 .
栈帧储存了返回地址、函数形参、函数体内创建的临时变量 .
发表于 2022-07-05 15:59:52
回复(0)
3
g20199171
内存对齐就是不同类型的变量在内存中占据的字节数不一样,需要在程序实际运行时,由系统自动把他们占据的字节数设成一样的,从而方便cpu的读取,有利于减少cpu访存次数,使程序运行的快。
c++中的函数调用是用栈来实现的。调用者先调用的函数先入栈,后调用的函数**栈。等被调用函数执行完后,按照相反的顺序在出栈。
发表于 2021-04-20 20:21:14
回复(0)
0
牛客471822133号
变量申请内存的最小单位是几字节就是几字节对齐。内存对齐提高CPU访问内存的速度。
调用函数会开辟栈内存,称为栈帧。
当前函数的所有临时变量在当前栈帧内申请内存,操作数据,函数返回后释放当前栈帧。
栈是由高地址向地址扩展的内存。
发表于 2022-03-20 21:53:00
回复(0)
0
消灭头发
内存对齐:计算机对数据的存储区域有限制,数据在内存中的首地址必须为k(4、8等)的整数倍
内存对齐的意义:cpu以k(4、8等)个字节为单位存取数据,内存对齐可以减少cpu访问内存的次数,加快存取速度
c++函数调用过程:函数参数代入、函数栈帧开辟、函数返回值、栈帧回退
栈帧:栈帧是一种用于实现函数调用的数据结构,是函数调用涉及信息的记录单元
发表于 2022-03-01 14:47:52
回复(0)
0
offer工程师
1、分配内存的顺序是按照声明的顺序。 移量是整数倍为止。 2、每个变量相对于起始位置的偏移量必须是该变量类型大小的整数倍,不是整数倍空出内存,直到偏 3、最后整个结构体的大小必须是里面变量类型最大值的整数倍。
发表于 2021-05-08 09:31:19
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
C++工程师
网易
2021
上传者:
小小
难度:
5条回答
28收藏
1019浏览
热门推荐
相关试题
五月份的商品销售额为60万元,该月...
数据分析师
途虎
2021
评论
(2)
来自
途虎养车2021秋招数据...
有三个企业的年利润额分别是5000...
数据分析师
途虎
2021
评论
(10)
来自
途虎养车2021秋招数据...
两个圆相交,交点是A1,A2。现在...
微软
网易
智力题
评论
(25)
来自
网易互娱2013研发工程...
《拳皇97》最后BOSS是谁?
游戏常识
评论
(1)
《魔兽世界》中,下列不属于玩家可以...
游戏常识
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题