-
棧幀
鎖定
C語言中,每個棧幀對應着一個未運行完的函數。棧幀中保存了該函數的返回地址和局部變量。
- 中文名
- 棧幀
- 外文名
- Stack Frame
- 別 名
- 棧幀也叫過程活動記錄,
- C語言
- 棧幀就是一個函數執行的環境:
- 注 意
- 而不是系統棧的底部。
棧幀概論
棧幀C語言
從邏輯上講,棧幀就是一個函數執行的環境:函數參數、函數的局部變量、函數執行完後返回到哪裏等等。
實現上有硬件方式和軟件方式(有些體系不支持硬件棧)
首先應該明白,棧是從高地址向低地址延伸的。每個函數的每次調用,都有它自己獨立的一個棧幀,這個棧幀中維持着所需要的各種信息。寄存器ebp指向當前的棧幀的底部(高地址),寄存器esp指向當前的棧幀的頂部(低地址)。
注意:EBP指向當前位於系統棧最上邊一個棧幀的底部,而不是系統棧的底部。嚴格説來,“棧幀底部”和“棧底”是不同的概念;ESP所指的棧幀頂部和系統棧的頂部是同一個位置。
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:11次歷史版本
- 最近更新: 你饿嘛i