亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

函數的調用原理——棧楨

發布時間:2020-06-24 12:35:07 來源:網絡 閱讀:837 作者:我是你帆哥 欄目:編程語言

函數調用過程------棧楨

例:剖析“比較兩個數之間的大小關系,并把較大數返回”的調用原理

int Max(int x, int y)
{
                 int z = 0;
                 if (x > y)
                                z = x;
                 else
                                z = y;
                 return z;
}
int main()
{
                 int a = 10;
                 int b = 20;
                 int c = 0;
                c = Max(a, b);
                printf( "%d\n", c);
                system( "pause");
                 return 0;
}

分析:


圖一:

main函數是被mainCRTStartup調用的,所以main函數棧楨的ebp+1存放的是mainCRTStartup棧楨ebp:

函數的調用原理——棧楨

函數的調用原理——棧楨

觀察上圖mainCRTStartup 的esp=0018ff4c     ebp=0018ff88


圖二:

下面這幅圖是mainCRTStartup調用main的過程,以及main函數棧楨的創建:

函數的調用原理——棧楨函數的調用原理——棧楨

圖二:

這幅圖是Max函數棧楨的創建過程:

函數的調用原理——棧楨

函數的調用原理——棧楨

圖三:

這幅圖是Max函數調用完成后,Max棧楨的銷毀過程:

函數的調用原理——棧楨


函數的調用原理——棧楨

整個程序在執行的過程中,函數的棧楨可以抽象如下圖,注意,棧是由高地址向低地址走的:

函數的調用原理——棧楨函數的調用原理——棧楨

因為棧要對齊,所以編譯器分配的內存如果多了,則就會被浪費。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

页游| 社旗县| 明溪县| 伊吾县| 奎屯市| 普宁市| 梁平县| 南平市| 西盟| 秭归县| 青龙| 万年县| 高邑县| 获嘉县| 维西| 运城市| 山东省| 黔江区| 温泉县| 多伦县| 高安市| 辰溪县| 岑溪市| 黔西县| 惠来县| 信阳市| 霍邱县| 霞浦县| 富锦市| 大城县| 南木林县| 新丰县| 调兵山市| 旅游| 德州市| 清徐县| 西林县| 抚顺县| 蓬溪县| 凯里市| 通河县|