中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

C語言中變量的內存排布

發布時間:2020-08-09 12:24:03 來源:網絡 閱讀:285 作者:tresordie 欄目:系統運維

之前對C語言的變量在內存中的排布有些混淆,故進行了以下幾個方面的簡要整理(所有的實例均是基于X86 PC Ubuntu上GCC編譯的)。

  1. 變量定義時,不同的變量分配的內存地址的增長方向
    (1) 定義兩個全局變量,在賦值編譯后打印其在內存中分配的地址,發現先定義的變量被分配在內存中的低地址中
    C語言中變量的內存排布
    C語言中變量的內存排布
    (2) X86 PC Ubuntu的main函數中定義變量,使用gcc編譯時查看系統對變量分配的內存地址(內存分配的增長方向是低地址到高地址)
    C語言中變量的內存排布
  2. 結構體實例化之后,結構體中成員分配的內存地址的增長方向
    (1) 定義全局結構體且初始化,gcc編譯后查看結構體成員內存分配的增長方向(內存分配的增長方向是由低向高向上增長)
    C語言中變量的內存排布
    (2) 在main函數中對結構體且初始化,gcc編譯后查看結構體成員內存分配的增長方向(內存分配的增長方向是由低向高向上增長)
    C語言中變量的內存排布
  3. 函數中定義變量時,使用的棧空間的內存的增長方向
    C語言中變量的內存排布
  4. arm在使用arm交叉編譯工具鏈時,一般的變量的內存分配是向上增長方向的,但是對于棧上的內存分配時采用的滿減棧的方式對棧上內存分配給變量使用的,棧的生長方向時向下生長方向的.
向AI問一下細節

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

AI

重庆市| 北流市| 多伦县| 台州市| 土默特右旗| 思茅市| 平湖市| 东方市| 图们市| 湟源县| 朝阳县| 安化县| 贵南县| 五台县| 昌邑市| 合阳县| 石楼县| 兴和县| 绥滨县| 吕梁市| 神池县| 佛坪县| 米林县| 望谟县| 禹州市| 沂水县| 巴彦淖尔市| 吉安县| 南和县| 达州市| 大安市| 闵行区| 靖州| 台山市| 武义县| 张北县| 耒阳市| 钦州市| 吉木萨尔县| 濮阳市| 庆城县|