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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

结构体、类的成员对齐

發布時間:2025/5/22 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 结构体、类的成员对齐 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

自然對齊

為了保證CPU的運算穩定和效率,要求基本數據類型在內存中的存儲地址必須自然對齊。所謂自然對齊,就是基本數據類型的變量不能簡單的存儲于內存中的任意地址處,它們的起始地址必須能夠被它們的大小整除。

???? 例如,在32位平臺下,int和指針類型的變量的地址應該能夠被4整除。

?

結構體變量的自然對齊

對于復合類型(一般指結構體和類)的對象,如果它的起始地址能夠滿足其中要求最嚴格(最高)的那個數據成員的自然對齊要求,那么它就是自然對齊的。

???? 什么是“自然對齊要求最嚴格”呢?距離來說吧,double、int、bool所占的空間依次為8、4、1,它們的對齊嚴格性依次降低。

結構體內部成員變量的對齊方式,按照其sizeof大小最大的基本類型變量的對齊要求進行對齊。必要的時候,對象的末尾還要進行字節填充。

總結:結構體的長度一定是其最長的成員變量大小的整數倍。

例子

struct{ //sizeof 8,按4字節對齊,末尾填充2字節long a1;short a2; }B;struct STest //sizeof 16,按8字節對齊,末尾填充7字節 {double b;char a; };struct ThreeeShort{ //sizeof 10,按2字節對齊,末尾填充1字節short a;short b;short c;short d;char ch; };

轉載于:https://www.cnblogs.com/younes/archive/2010/06/02/1750265.html

總結

以上是生活随笔為你收集整理的结构体、类的成员对齐的全部內容,希望文章能夠幫你解決所遇到的問題。

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