函數(shù)調(diào)用過程中棧到底是怎么壓入和彈出的?
比如:void fun(int a,int b,int c); 調(diào)用fun(1,2,3); 調(diào)用時: -將斷點程序指針壓入堆棧 -將3,2,1順序壓入堆棧,并指定參數(shù)變量指針到堆棧,參數(shù)存放位置即為參數(shù)變量位置 -壓棧保存現(xiàn)場 -執(zhí)行函數(shù) -彈棧恢復(fù)現(xiàn)場 -堆棧指針減掉參數(shù)占用字節(jié)數(shù),舍棄堆棧中的參數(shù) -彈棧斷點程序指針加上調(diào)用語句字節(jié)數(shù)繼續(xù)執(zhí)行