日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

为什么要进行结构体内存对齐

發布時間:2024/3/12 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 为什么要进行结构体内存对齐 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

###結構體內存對齊
####什么是結構體內存對齊
結構體不像數組,結構體中可以存放不同類型的數據,它的大小也不是簡單的各個數據成員大小之和,限于讀取內存的要求,而是每個成員在內存中的存儲都要按照一定偏移量來存儲,根據類型的不同,每個成員都要按照一定的對齊數進行對齊存儲,最后整個結構體的大小也要按照一定的對齊數進行對齊。

####對齊規則:

  • 第一個成員在與結構體變量偏移量為0的地址
  • 其他成員變量要對齊到某個數字(對齊數)的整數倍的地址處。
  • 對齊數=編譯器默認的一個對齊數 與 該成員大小的較小值。
  • linux 中默認為4
  • vs 中的默認值為8
  • 結構體總大小為最大對齊數的整數倍(每個成員變量除了第一個成員都有一個對齊數)
  • 如果嵌套了結構體的情況,嵌套的結構體對齊到自己的最大對齊數的整數倍,結構體的整體大小就是所有最大對齊數的整數倍(含嵌套結構體的對齊數)
    特點
    每個成員的偏移量%自己的對齊數=0;
    結構體整體大小%所有成員最大對齊數=0;
    結構體的對齊數是自己內部成員的對齊數中的最大對齊數
    ####舉例說明

    //平臺VS2013下(默認對齊數為8) //練習一struct S1{char c1;int i;short s2;};printf("%d\n", sizeof(struct S1));//12 //練習二struct S2{char c1;short s2;int i;};printf("%d\n", sizeof(struct S2));//8

    #####案例一分析
    char 類型占1個字節,編譯器默認對齊數為8,則該變量對齊數為1,實際偏移量為0
    int 類型占4個字節,編譯器默認對齊數為8,則該變量對齊數位4,偏移量應該為4的倍數,實際偏移量為4
    short類型占2個字節,編譯器默認對齊數為8,則該變量對齊數2,偏移量應該為2的倍數,實際偏移量為8
    結構體整體的對齊數為所有成員的對齊數中最大的一個,對齊數為4
    結構體整體大小,按照上面數據占據空間大小,計算得結構體大小10字節。
    按照對其規則,應該對齊到4的倍數,實際大小為12字節

    #####案例二分析
    char 類型占1個字節,編譯器默認對齊數為8,則該變量對齊數為1,實際偏移量為0
    short類型占2個字節,編譯器默認對齊數為8,則該變量對齊數2,偏移量應該為2的倍數,實際偏移量為2
    int 類型占4個字節,編譯器默認對齊數為8,則該變量對齊數位4,偏移量應該為4的倍數,實際偏移量為4
    結構體整體的對齊數為所有成員的對齊數中最大的一個,對齊數為4
    結構體整體大小,按照上面數據占據空間大小,計算得結構體大小8字節。
    按照對其規則,應該對齊到4的倍數,實際大小為8字節

    ####圖形分析

    ###為什么存在內存對其
    ####平臺移植型好
    不是所有的硬件平臺都能訪問任意地址上的數據;某些硬件平臺只能只在某些地址訪問某些特定類型的數據,否則拋出硬件異常,及遇到未對齊的邊界直接就不進行讀取數據了。
    ####cpu處理效率高

    從上圖可以看出,對應兩種存儲方式,若CPU的讀取粒度為4字節,

  • 那么對于一個int 類型,若是按照內存對齊來存儲,處理器只需要訪存一次就可以讀取完4個字節
  • 若沒有按照內存對其來讀取,如上圖所示,就需要訪問內存兩次才能讀取出一個完整的int 類型變量
  • 具體過程為,第一次拿出 4個字節,丟棄掉第一個字節,第二次拿出4個字節,丟棄最后的三個字節,然后拼湊出一個完整的 int 類型的數據。
  • ####其實結構體內存對齊是拿空間換取時間的做法。提高效率

    總結

    以上是生活随笔為你收集整理的为什么要进行结构体内存对齐的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 亚洲小说网 | 日本免费www | 黄色大毛片 | 久久99精品久久久久婷婷 | 18禁裸男晨勃露j毛免费观看 | 国产精品无码成人片 | 不卡视频免费在线观看 | 国产精品视频网址 | 午夜激情视频在线观看 | 91精品人妻一区二区三区果冻 | 日韩av少妇 | 欧美高清另类 | 都市激情 亚洲 | 国产亚洲一区二区三区四区 | 午夜视频在线免费观看 | 污污视频在线观看网站 | 亚洲成人h| 九九久久九九久久 | 婷婷狠狠| 黑人专干日本人xxxx | 国产精品2 | 99re在线观看 | 亚洲乱视频 | 激情无码人妻又粗又大 | 中文字幕精品无码一区二区 | 欧美一级特黄aaaaaa大片在线观看 | 青青青草视频在线观看 | 三级亚洲| 人妻aⅴ无码一区二区三区 阿v免费视频 | 佐佐木明希电影 | 成人羞羞国产免费游戏 | 国产日本一区二区 | 无码任你躁久久久久久老妇 | 欧洲视频一区 | 奇米成人影视 | 极品新婚夜少妇真紧 | 粗大挺进潘金莲身体在线播放 | 五月天堂色 | 成人91av| 肌肉猛男裸体gay网站免费 | 亚洲三级一区 | 国产成人自拍视频在线观看 | 怡红院亚洲 | 九色蝌蚪91 | 欧美日韩在线中文字幕 | 台湾a级艳片潘金莲 | 国产视频在线观看网站 | 麻豆一区产品精品蜜桃的特点 | av中文字幕一区二区 | 国产福利一区二区视频 | 巨乳中文字幕 | 精品日韩一区 | 一本色道久久综合亚洲 | 日韩有码中文字幕在线 | 2025国产精品视频 | 国产成人自拍视频在线 | 欧美性受xxx黑人xyx性爽 | 男女扒开双腿猛进入爽爽免费 | 丝瓜色版 | 高跟鞋肉丝交足91 | 国产精品无码久久久久成人app | 精品无码久久久久久久久久 | 天天精品视频 | 欧美三级午夜理伦三级中视频 | 28一20岁女人一级 | 51成人做爰www免费看网站 | 免费a级黄色片 | 五月婷婷狠狠 | 艳妇臀荡乳欲伦交换gif | 台湾色综合 | a√天堂网 | 国产女人18毛片水18精品 | 加勒比不卡视频 | 亚洲天堂男| 亚洲免费激情视频 | 国产精品久久久久久久久免费桃花 | 欧美不卡 | 成人小视频在线观看 | 绿帽人妻精品一区二区 | 午夜精品福利一区二区蜜股av | 夜间福利在线 | 操丰满女人 | 熟女人妇 成熟妇女系列视频 | 日韩一区二区免费在线观看 | 青青视频在线播放 | 牛牛视频在线 | 精品国产一级片 | 成人免费毛片东京热 | 一级大片黄色 | 色欲久久久天天天综合网精品 | 国产欧美一区在线观看 | 美女福利视频在线观看 | 91插插插影库永久免费 | 久久久久国产一区二区三区 | 国产乱子伦农村叉叉叉 | 波多野结衣视频免费在线观看 | 性欧美在线观看 | 久久精品视频16 | 永久免费未满视频 |