发新帖我要提问
123
返回列表
打印
[疑难问答]

单片机堆栈说明与全局变量和局部变量的存储位置

[复制链接]
楼主: wilhelmina2
手机看帖
扫描二维码
随时随地手机跟帖
41
mikewalpole| | 2023-10-18 20:25 | 只看该作者 回帖奖励 |倒序浏览
全局变量和局部变量的存储位置不同。全局变量通常是在程序启动时静态分配的内存空间,存储在堆栈的顶部,由CPU的栈指针控制。而局部变量则是在函数调用时动态分配的内存空间,存储在堆栈的特定位置,由CPU的栈指针控制。

使用特权

评论回复
42
lihuami| | 2023-10-18 20:34 | 只看该作者
在使用单片机开发过程中,需要合理使用堆栈,避免堆栈溢出等问题。

使用特权

评论回复
43
hilahope| | 2023-10-18 20:42 | 只看该作者
当函数被调用时,堆栈会为该函数分配一块内存,用于存储该函数的局部变量、参数和返回地址等信息。当函数返回时,该块内存会被释放,堆栈指针恢复到原始位置。

使用特权

评论回复
44
朝生| | 2023-11-2 19:10 | 只看该作者
局部变量的生命周期以及可见性是有限的,只能在函数或者代码块内部利用。

使用特权

评论回复
45
鹿鼎计| | 2023-11-2 19:44 | 只看该作者
在微控制器中,堆栈通常是一个可以通过软件编程设置大小和位置的存储区域。

使用特权

评论回复
46
digit0| | 2023-11-2 20:53 | 只看该作者
您能向汇编代码部分添加相关注释吗

使用特权

评论回复
47
LinkMe| | 2023-12-7 14:37 | 只看该作者
在多个函数之间同享某些数据的环境,可以斟酌利用全局变量。

使用特权

评论回复
48
软核硬核| | 2023-12-8 11:26 | 只看该作者
局部变量,和形参,返回值等存储在栈中,由编译器主动分派以及开释。

使用特权

评论回复
49
理想阳| | 2023-12-8 13:00 | 只看该作者
全局变量以及局部变量的存储位置是按照它们的声明方法来肯定的。

使用特权

评论回复
50
天天向善| | 2023-12-10 12:32 | 只看该作者
堆和栈必须存储相应的数据,不能互换使用,对吧

使用特权

评论回复
51
Pretext| | 2023-12-11 11:27 | 只看该作者
在c说话中,全局变量在内存中的地点是牢固的,可以在步伐的任何处所拜候。

使用特权

评论回复
52
AIsignel| | 2024-1-8 13:11 | 只看该作者
如果操作过程中数据溢出怎么办

使用特权

评论回复
53
芯路例程| | 2024-1-11 16:15 | 只看该作者
必要细致全局变量以及局部变量的存储位置以及生命周期,以便于管理以及优化步伐。

使用特权

评论回复
54
V853| | 2024-2-2 01:16 | 只看该作者
如何防止对对应地址数据的意外修改

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则