91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

函數的調用原理——棧楨

發布時間: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

饶河县| 格尔木市| 缙云县| 新蔡县| 岚皋县| 梁山县| 秭归县| 合山市| 缙云县| 富平县| 桂东县| 中方县| 卢龙县| 彭州市| 满城县| 连江县| 封丘县| 宣武区| 茶陵县| 廉江市| 桑植县| 乐东| 荃湾区| 辽源市| 湘潭县| 武穴市| 靖边县| 寿阳县| 黔南| 东丽区| 巍山| 周至县| 栖霞市| 云梦县| 肃北| 浙江省| 明星| 钦州市| 井陉县| 邵阳县| 六盘水市|