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