电工学习网

 找回密码
 立即注册
查看: 2178|回复: 0
打印 上一主题 下一主题

话说堆和栈

[复制链接]
跳转到指定楼层
楼主
发表于 2018-6-25 11:43:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
        一直以来,我把堆栈当成一个意思,就是系统执行时开辟的一片临时内存区,实现存放临时变量和系统寄存器值的连续内存区,事实却不是这样的。我们常常称为堆栈,其实堆和栈是不同的。
       栈(stack)是系统自动管理的的一片内存区域,用来存放局部变量和子程序压栈、出栈的状态变量,如主程序调用子程序时,或主程序被中断程序中断时,程序从此处中断执行,需要将寄存器的值进行保存,在这些完子程序后返回原点接着执行主程序,就需要出栈先前压栈的寄存器值及变量值等。
       堆(heap)是用户想要独立灵活的控制一片内存区域时,系统开辟的一片动态内存区,这些动态内存区称为堆。
       通常我们编写FC, FB的接口参数,常常用到的是栈。
       那我们什么时候用的是堆呢?

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

电工学习网 ( )

GMT+8, 2024-4-25 14:03

Powered by © 2011-2022 www.diangon.com 版权所有 免责声明 不良信息举报

技术驱动未来! 电工学习网—专业电工基础知识电工技术学习网站。

栏目导航: 工控家园 | 三菱plc | 西门子plc | 欧姆龙plc | plc视频教程

快速回复 返回顶部 返回列表