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

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

結(jié)構(gòu)體成員的字節(jié)對齊???個問題都很有深度?。皇紫任乙f的是,字節(jié)對齊在不同編譯器下語法是不一樣的,在GCC中是#pragmapush(1)#pragmapack()在MSC 中用VC的代碼項(xiàng)里可以

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

??個問題都很有深度?。皇紫任乙f的是,字節(jié)對齊在不同編譯器下語法是不一樣的,在GCC中是#pragmapush(1)#pragmapack()在MSC 中用VC的代碼項(xiàng)里可以調(diào)整,默認(rèn)是8字節(jié);typedefstruct{charcinti}test字節(jié)對齊,是對齊,比如說char與int如果是4字節(jié)對齊,那么char也會占用4個字節(jié),總共占8字節(jié),而且結(jié)構(gòu)體對象存儲是按照順序存的,char肯定在int前面。第二種情況如果1字節(jié)對齊,意味著char只占1字節(jié),而結(jié)下來int會占用4字節(jié),這個N字節(jié)對齊的意思是,每個成員占用空間必須是N字節(jié)的倍數(shù),不足N字節(jié)的占用N字節(jié)。那么以1字節(jié)對齊那它占用5個字節(jié)。還有你說的每種數(shù)據(jù)是低位還是高位在前,這個根處理器有關(guān),Intel處理是小端對齊,比如說一個整數(shù)522387969用16進(jìn)制表示是:0x1f230201,在Intel處理器中表示是0x0102231f,所以在內(nèi)存用0x0102031f來示522387969,這就是所謂有小端對齊;但在arm處理器中522387969表示是0x1f230201,這就是所謂的大端對齊,這種方式又叫作網(wǎng)絡(luò)字節(jié)序。當(dāng)然前面說的字節(jié)序只是對intlongshort這些內(nèi)置(builtin)數(shù)據(jù)類型用效,對結(jié)構(gòu)體內(nèi)如果有intlong這類成員也會有所謂的字節(jié)序,如前面所說,不管是什么序結(jié)構(gòu)體對象存儲是按照順序存,先定義的成員肯定在后定義的成員前面,但單個成員有字節(jié)序,不知這樣說,你的明白?不是,請仔細(xì)體會這句話:這個N字節(jié)對齊的意思是,每個成員占用空間必須是N字節(jié)的倍數(shù),不足N字節(jié)的占用N字節(jié)。大于N字節(jié)就湊夠N字節(jié)的倍數(shù),比如按3字節(jié)對齊,那么一個4字節(jié)的int將占據(jù)6字節(jié)~