栈和堆,以STM32为例说明

本文介绍了变量的存储类型(静态和动态)、栈和堆的区别,重点讲解了栈如何存放局部变量和函数参数,以及堆用于动态内存分配的机制。同时提到了STM32开发中涉及的相关资源文件和库。
摘要由CSDN通过智能技术生成

请添加图片描述


1. 前言

我们先温习一下变量的基础知识,啥是全局变量,啥是局部变量,这里就不赘述了。
变量的存储方式有:静态存储和动态存储。
静态存储方式:指在程序运行期间由系统分配固定的存储空间方式。
动态存储方式:在程序运行期间根据需要进行动态的分配存储空间方式。
全局变量存储在静态存储区中;动态存储区可以存放函数形式参数、局部变量、函数调用时的现场保护和返回地址等。


2. 栈

栈主要用于存放局部变量,函数形参等,属于编译器自动分配和释放的内存,栈的大小不能超过内部 SRAM 的大小。

3. 堆


堆主要用于动态内存的分配,像 malloc()、calloc()和 realloc()等函数申请的内存就在堆上面。堆中的内存一般由程序员分配和释放,若程序员不释放,程序结束时可能由操作系统回收。


参考

【1】正点原子,STM32 启动文件浅析.pdf
【2】正点原子,MAP 文件浅析.pdf
【3】[野火]STM32 HAL库开发实战指南

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智驾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值