首页
题库
面试
求职
学习
竞赛
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收藏
1143浏览
热门推荐
相关试题
下列哪两个变量之间的相关程度高
数据分析师
途虎
2021
评论
(4)
来自
途虎养车2023秋招数据...
五月份的商品销售额为60万元,该月...
数据分析师
途虎
2021
评论
(2)
来自
途虎养车2023秋招数据...
两个圆相交,交点是A1,A2。现在...
微软
网易
智力题
评论
(25)
来自
网易互娱2013研发工程...
Mysql中表student_in...
数据库
SQL
评论
(1)
下列表达式的值为True的是( )
Python
评论
(2)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题