表白:黑白圣堂血天使,天劍鬼刀阿修羅。 講解對象:/內(nèi)存模型--棧/stack 作者:融水公子 rsgz 匯編教程匯編教程 http://www./post/91.html 分給應(yīng)用的那塊內(nèi)存,還有另一部分就是棧/stack了,棧主要是給函數(shù)用的。它和幀是相反的,從高位到低位增長。
 像這種簡單的函數(shù),包含了兩個函數(shù)main()和add_a_and_b()int main() {
int a = 2;
int b = 3;
return add_a_and_b(a, b);
} 然后執(zhí)行函數(shù)的時候呢,棧會為了這兩個函數(shù)建立兩個對應(yīng)的幀。幀里面分別放著各自的變量。調(diào)用棧有多少層,就有多少幀,就有多少個函數(shù)。add_a_and_b運行結(jié)束,它的幀就會被回收,系統(tǒng)會回到函數(shù)main剛才中斷執(zhí)行的地方,繼續(xù)往下執(zhí)行。通過這種機制,就實現(xiàn)了函數(shù)的層層調(diào)用,并且每一層都能使用自己的本地變量。
特點:新的幀,叫做"入棧",英文是 push;棧的回收叫做"出棧",英文是 pop,從內(nèi)部函數(shù)最先釋放,我們就知道了這個規(guī)律了。所有的幀釋放了,棧就釋放了。 為了記憶:結(jié)束高位,棧幀函數(shù) 結(jié)束高位,戰(zhàn)爭函數(shù)
隨心畫一幅,不要嫌我畫的丑
=== 公眾號:小雪妃 謝謝大家的支持!可以點擊我的頭像,進入我的空間瀏覽更多文章呢。建議大家360doc[www.hbhlny.cn]注冊一個賬號登錄,里面真的有很多優(yōu)秀的文章,歡迎大家的到來。 ---
|