|
一直以来,我把堆栈当成一个意思,就是系统执行时开辟的一片临时内存区,实现存放临时变量和系统寄存器值的连续内存区,事实却不是这样的。我们常常称为堆栈,其实堆和栈是不同的。
栈(stack)是系统自动管理的的一片内存区域,用来存放局部变量和子程序压栈、出栈的状态变量,如主程序调用子程序时,或主程序被中断程序中断时,程序从此处中断执行,需要将寄存器的值进行保存,在这些完子程序后返回原点接着执行主程序,就需要出栈先前压栈的寄存器值及变量值等。
堆(heap)是用户想要独立灵活的控制一片内存区域时,系统开辟的一片动态内存区,这些动态内存区称为堆。
通常我们编写FC, FB的接口参数,常常用到的是栈。
那我们什么时候用的是堆呢?
|
|