什麽是堆棧
堆是堆(heap),棧是棧(stack),雖然堆棧(heap and stack)有相似之處,但不要混為壹談。
本質上講,堆(heap)是壹種數據結構,是純軟件的實現。堆基於壹定的程序基礎(例如在操作系統),它更加偏向於軟件實現動態的內存管理,令程序運行時根據所需來動態申請/釋放內存。
而棧(stack)既存在軟件實現又存在硬件實現。棧本質上是壹種簡單的先進先出結構,主要目的是為程序運行時保存關鍵的現場數據,尤其適合於(嵌套式)中斷的配合。幾乎所有的微控制器/微處理器都具備硬件棧。而軟件/操作系統中又可以進壹步建立軟件棧,為線程建立專用的存儲區域。