卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

c語言struct字節(jié)對齊 結(jié)構(gòu)體成員的字節(jié)對齊?

結(jié)構(gòu)體成員的字節(jié)對齊?如何編程實現(xiàn)struct字節(jié)對齊問題?字節(jié)對齊基本概念與對齊規(guī)則是什么?24(如果按8字節(jié)對齊,則先前的intfloat僅為8字節(jié),雙8字節(jié),char構(gòu)成8字節(jié)=24)struc

結(jié)構(gòu)體成員的字節(jié)對齊?

如何編程實現(xiàn)struct字節(jié)對齊問題?

字節(jié)對齊基本概念與對齊規(guī)則是什么?

24(如果按8字節(jié)對齊,則先前的intfloat僅為8字節(jié),雙8字節(jié),char構(gòu)成8字節(jié)=24)

struct PP{int afload B char D}OO sizeof(OO)12字節(jié),它是按照4字節(jié)對齊的

對齊與內(nèi)存中數(shù)據(jù)的位置有關(guān)。如果變量的內(nèi)存地址是其長度的整數(shù)倍,則稱為自然對齊。例如,在32位CPU中,如果整數(shù)變量的地址是0x00000004,則它自然對齊。

字節(jié)對齊的根本原因是CPU訪問數(shù)據(jù)的效率。假設(shè)上面整數(shù)變量的地址不是自然對齊的,例如0x00000002,那么CPU需要訪問內(nèi)存兩次,如果它接受它的值。第一次從0x00000002-0x00000003取短,第二次從0x00000004-0x00000005取短,然后合并得到所需的數(shù)據(jù)。如果變量的地址為0x00000003,則需要訪問內(nèi)存三次,第一次訪問char,第二次訪問簡稱char,第三次訪問char,然后合并得到整數(shù)數(shù)據(jù)。如果變量處于自然對齊位置,則只能檢索一次數(shù)據(jù)。有些系統(tǒng)對對齊非常嚴格,如SPARC系統(tǒng)。如果數(shù)據(jù)沒有對齊,就會出現(xiàn)錯誤

例如:在16位計算機中,變量按2字節(jié)對齊。例如,雖然成員a是char類型,但是下一個成員B的地址在地址0x80000000中只占用1字節(jié),但是下一個成員B的地址不能使用地址0x80000001,而必須使用地址0x80000002,地址按照字長對齊。上述結(jié)構(gòu)占用的空間為24 28=16字節(jié)