大家肯定学习过了栈这一结构,也知道栈的基本特性,可是栈如何在程序中起作用,特别是C语言中,是不多的。所以今天就来分享一下栈在程序中的作用。
首先读这篇文章之前,读者首先要了解两个基本的概念。
1、根据SP指针指向的位置,栈可以分为满栈和空栈
(1)满栈: 堆栈指针SP总是指向最后压入堆栈的数据。
(2)空栈: 堆栈指针SP总是指向下一个将要放入数据的空位置。
2、根据SP指针移动的方向,栈可以分为升栈和降栈
(1)升栈: 随着数据的入栈,SP指针从低地址——>高地址
(2)降栈: 随着数据的入栈,SP指针从高地址——>低地址
ARM采用的是 满降栈。
下面是一个栈在程序运用中的实例
第一排为源代码ÿ