c/c++學(xué)習(xí)筆記2-語言基礎(chǔ)概念

父函數(shù)進(jìn)入子函數(shù)前后發(fā)生到底發(fā)生了什么

引用
https://www.cnblogs.com/bangerlee/archive/2012/05/22/2508772.html

  • 基礎(chǔ):
    理解以下總結(jié)性概念之前,請閱讀下上面引用的帖子
    每個(gè)進(jìn)程都有一個(gè)對應(yīng)于用戶態(tài)的棧區(qū),棧區(qū)內(nèi)部根據(jù)函數(shù)劃分棧幀,棧底xbp(32位x=e,64位x=r),從上往下增長的棧區(qū),棧頂位xsp,在函數(shù)進(jìn)入和退出的之間 xbp和xsp之間,是屬于函數(shù)的棧幀區(qū)域
  • 進(jìn)入子函數(shù),C/c++語言函數(shù)參數(shù)壓棧順序從右到左
    原因:

http://blog.csdn.net/jiange_zh/article/details/47381597

  • 進(jìn)入子函數(shù),父函數(shù)中的局部變量原來是存儲在堆區(qū)的,那么需要壓入棧區(qū)
    子函數(shù)退出后,再恢復(fù)現(xiàn)場,所以將局部變量的地址傳入子函數(shù),子函數(shù)操作的指針
    已經(jīng)不是原來的局部變量所在地方了但是退出的時(shí)候,恢復(fù)現(xiàn)場后,地址還是對應(yīng)的,這個(gè)回復(fù)現(xiàn)場后是否對應(yīng)地址我覺得跟堆區(qū)地址是否被占用有關(guān)系,默認(rèn)情況下,只要堆區(qū)資源還在,應(yīng)該是恢復(fù)到原來地址

  • 局部變量的地址都存儲在棧幀區(qū)域中

  • 子函數(shù)退出后,那么屬于子函數(shù)的局部變量被釋放,是因?yàn)樽雍瘮?shù)結(jié)束后,整個(gè)棧幀都被釋放了,所以局部變量自然也就沒有生命了

  • return的本質(zhì)就是把父函數(shù)的內(nèi)存地址的下一條指令給ip寄存器

變量存儲本質(zhì)

  • 全局變量和靜態(tài)變量存儲在內(nèi)存靜態(tài)區(qū)

類是如何承載面向?qū)ο蟮膶?shí)現(xiàn)

類的基礎(chǔ)概念

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 原文地址:C語言函數(shù)調(diào)用棧(一)C語言函數(shù)調(diào)用棧(二) 0 引言 程序的執(zhí)行過程可看作連續(xù)的函數(shù)調(diào)用。當(dāng)一個(gè)函數(shù)執(zhí)...
    小豬啊嗚閱讀 4,972評論 1 19
  • 從三月份找實(shí)習(xí)到現(xiàn)在,面了一些公司,掛了不少,但最終還是拿到小米、百度、阿里、京東、新浪、CVTE、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,815評論 11 349
  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,626評論 30 472
  • 一:java概述:1,JDK:Java Development Kit,java的開發(fā)和運(yùn)行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,815評論 0 11
  • 就在昨天,老媽和我微信視頻,說:聽說你買了一輛車??刹皇菃??我終于買了一輛自行車。哈哈哈哈,兩人不約大笑。 我買了...
    木木木俠閱讀 1,053評論 0 4

友情鏈接更多精彩內(nèi)容