国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

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

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

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

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