mhpn.cn mhpn.cn

Article

嵌入式软件C语言篇--函数栈帧的创建与销毁

TEMPLATE PREVIEW · 文章页模板示意 · 正文由后台文章数据自动填充 · 配图自动生成
特种作业理论考场全景示意图
1.栈帧创建1.1栈帧栈帧每调用一次函数就在栈区开辟一块独立内存区域用来存放返回地址旧栈基址局部变量临时数据栈整体向下生长高地址到低地址两个关键寄存器SP 栈指针永远指向当前栈顶FP/BP基址指针指向当前栈帧的起始位置栈帧底部用来索引 本函数局部变量1.2栈帧创建调用函数时一共4步底层靠push压栈修改SPFP硬件指令完成1.压入返回地址CPU执行函数跳转指令(ARM:bl),自动把调用完这个函数之后要回去执行的那条指令地址压入栈函数执行完靠这个地址回到原代码2.保存旧栈帧基址FP压栈旧FP把调用者函数的FP压栈保存记录上一层函数栈帧的边界3.更新FPSP让FP寄存器指向当前SP的位置FP成为新函数栈帧的起点后面所有局部变量都用FP做偏移来访问4.SP继续向低地址移动SP减小划出空间存放本函数的局部变量临时变量一句话理解移动SP开辟空间FP标记栈帧起点这片区域就是新函数的栈帧2.函数栈帧的销毁销毁不会清空内存数据只修改寄存器SPFP配合pop出栈1.恢复SP到FP的值SP直接赋值为当前FP一次性回收本函数局部变量占用的全部空间局部变量对应的内存不再属于当前栈帧2.出栈恢复上一层函数旧FP从栈里取出之前保存的旧FP还给FP寄存器FP回到调用者函数栈帧的边界3.出栈拿到返回地址跳转回去从栈顶取出预先压入的返回地址CPU跳回调用函数的地方继续运行❗❗栈帧销毁不会把内存里的数据清零只是SPFP不再指向这片内存原来局部变量的值还留在内存新函数调用开辟栈帧时会直接覆盖这块内存这就是为什莫返回局部变量指针拿到脏数据产生野指针三.完整流程串联mian 函数正在运行main的栈帧调用func()【栈帧创建】1.压栈保存返回地址回到mian的地址2.压栈保存main的FP3.FPSP,标记func的栈帧起点4.SP-N开辟空间放func局部变量执行func里面的代码【栈帧销毁return】1.SPFP,释放局部变量占用空间2.POP恢复main函数旧FP3.POP取出返回地址CPU跳回mian回到main 继续执行func栈帧作废4.高频易错坑1.❌栈帧销毁系统把局部变量内存清零✔只动SP/FP数据残留2.❌创建栈帧需要操作系统临时申请新内存✔线程启动时栈整块内存就分配好了栈帧只是在这片内存里移动SP划分空间3..❌FP基址指针指向栈顶✔FP标记当前栈帧的起始边界栈底用来访问局部变量4..栈帧是每一个函数调用单独一份递归调用就会连续创建多层栈帧递归太深SP不断下移栈空间耗尽栈溢出已完结

看完文章还有疑问?直接问顾问

三门峡、驻马店特种作业考证问题:报名条件、考试批次、材料整理、证书复审,电话或邮箱都能找到我们,当天回复,企业团报另对接 HR 专人。

预约咨询 18236992212

Keep Reading

继续阅读相关资讯

考试公告、政策解读、行业动态持续更新,考证路上保持关注不踩坑;看完本文想动手报名的,往下看服务流程。

服务窗口递交复审与报考资料

How We Help

看懂文章之后,报名这样走不绕路,材料不返工

三门峡、驻马店两地学员,从咨询到拿证复审的完整路径,四步走完。每一步该准备什么、容易卡在哪,顾问会提前讲清楚,不用自己摸索,也不用被网上各种说法绕晕,更不用怕遇到"免考拿证"的骗子。

1

条件自查

年龄、学历、体检三项硬性条件先过一遍,不符合的讲清楚补救办法,避免材料做了一半才发现报不上名。

2

材料预审

身份证、学历证明、体检报告、照片提前把关,规格不对一次说清,缺项一次补齐,报名窗口一开就能提交。

3

赶批次报名 + 考前辅导

同步河南应急管理厅考试批次,开报即报不拖堂;理论按题库结构梳理重点,实操陪练走一遍考核流程。

4

考后跟踪

成绩查询、证书领取方式、复审到期提醒都记在台账里,企业团报的客户,台账对接到 HR 统一管理。

Renewal Reminder

证书快到期?别等失效才想起来,提前三个月排期

特种作业操作证按周期复审,过期未复审不能继续上岗。把发证日期告诉我们,到期前三个月主动提醒,材料、培训、考试一次性排好,三门峡、驻马店均可办理;企业客户可批量核对在岗人员证书有效期,检查前一次盘清。

查看复审办理流程
特种作业报考与复审材料整理

Next Step

文章看完了,下一步按您的状态选,别一步跨太大

还没报名的、材料在准备的、证书快到期的,对应动作不一样,按自己的阶段对号入座,不用全看一遍。

还没报名:先查条件

年龄、学历、体检三项硬条件先过一遍,再看批次窗口。条件卡住别硬报,先电话问补救办法,确定能报再准备材料,方向感更清楚。

查最近考试批次

材料在准备:先做预审

身份证、学历证明、体检报告、照片规格逐项核对,缺项一次补齐,别等到报名窗口开了才发现材料不对,白白错过这一批。

了解材料预审

证书快到期:提前复审

复审要走培训与考核流程,提前三个月安排最稳妥。把发证日期告诉我们,到期前主动提醒,不用自己记着日子。

复审办理流程

Local Service

三门峡、驻马店,两地都能办,企业个人各有通道

个人学员按批次走,企业客户按排期走,两条流程互不干扰。

三门峡方向

湖滨、陕州、灵宝、渑池、卢氏学员常见诉求是配合项目工期拿证:按最近批次排材料,考前辅导集中安排,理论与实操都有人盯进度,不用自己追着问。

驻马店方向

驿城、平舆、汝南、西平方向工厂与物业岗位占比高,低压电工咨询最多;企业团报可按车间统一建档,复审节点统一提醒,HR 不用逐个追。

企业客户

资质检查、项目备案要核对持证台账。团报通道统一排期、统一培训、档案归口,到期复审批量通知,检查前心里有底。

FAQ

报考前经常被问到的几个问题,一次写清楚

收费、材料、团报门槛——电话里回答过无数遍的问题,这里一次写清楚,不用您再重复问,也不用翻聊天记录找答案,看完就有底。

咨询收费吗?

不收费。报名条件、工种方向、批次窗口这些问题,电话里直接讲清楚,您听完再决定要不要跟着走流程,没有"必须报班"这一说。

材料不齐能先报上名吗?

不建议。报名审核对材料规格卡得严,缺项或照片不合规都会被打回,反而耽误批次。先做材料预审,补齐了再提交更稳妥,窗口开了当天就能报上名。

企业团报最低多少人起?

没有硬性门槛,三五人的班组也能按团报流程走,只是人数越多排期效率越高、档案管理越省事。三门峡、驻马店企业可先电话报人数、说清工期节点谈细节。

这篇文章没解决的问题,电话里说清楚,方案当场给

报名条件、考试批次、材料清单、复审周期——咨询免费,方案当场给。企业团报可统一排期、档案归口,合同与发票流程当面讲清,不用线上扯皮。

咨询电话 18236992212 · 809451989@qq.com · 三门峡 / 驻马店两地均可办理
预约咨询