从单片机看内存划分(堆、栈、静态、常量、代码)

单片机内部RAM与ROM区域都比较熟悉,我们主要看下常说的堆区、栈区、静态区、常量区、代码区的说明

堆区:程序员自己开辟自己释放的空间、由malloc、calloc等函数开辟,free释放的一片地址区域、若申请了堆区内存,之后忘记释放内存,很容易造成内存泄漏(需要注意),包含在单片机的SRAM空间内

栈区:编译器自动分配释放、存放局部变量、形参、函数返回值等数据、栈区之中的数据的作用范围过了之后,系统就会回收自动管理栈区的内存,例如局部变量只作用与本函数内、栈内的值是可读可写的、包含在SRAM中

静态区:存放静态变量(static)与全局变量的空间、静态区的内存被分配后, 静态区的内存直到程序全部结束之后才会被释放、其值是可读可写的、包含在SRAM中

常量区:存放常量的区域、程序运行过程中不可被更改的量、只读区域、包含在ROM中

代码区:存放程序的代码、即CPU执行的机器指令、只读的,存放函数体的二进制代码、重新上电,代码还会继续运行,并不会消失,所以存储在ROM中

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值