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

limesdr做4G基站 #pragma pack(1) 的意義是什么?

#pragma pack(1) 的意義是什么?將結(jié)構(gòu)的邊界對(duì)齊設(shè)置為1字節(jié),即所有數(shù)據(jù)連續(xù)存儲(chǔ)在內(nèi)存中。例如,您用C語(yǔ)言定義以下結(jié)構(gòu):struct s{char Chint I},然后在main函數(shù)中

#pragma pack(1) 的意義是什么?

將結(jié)構(gòu)的邊界對(duì)齊設(shè)置為1字節(jié),即所有數(shù)據(jù)連續(xù)存儲(chǔ)在內(nèi)存中。例如,您用C語(yǔ)言定義以下結(jié)構(gòu):struct s{char Chint I},然后在main函數(shù)中編寫(xiě)一個(gè)句子:printf(%d”,sizeof(struct s)),即輸出結(jié)構(gòu)s占用的字節(jié)數(shù)。您認(rèn)為輸出結(jié)果會(huì)是什么?我們知道char類型需要1個(gè)字節(jié),int類型需要4個(gè)字節(jié),所以輸出結(jié)果是5?答案是否定的。你可以自己試試,輸出是8。為什么?這是因?yàn)榫幾g器優(yōu)化了結(jié)構(gòu)的存儲(chǔ),以使程序運(yùn)行更快,減少CPU讀取數(shù)據(jù)的指令周期。事實(shí)上,盡管第一個(gè)char成員最初只有一個(gè)字節(jié),但它實(shí)際上占用了四個(gè)字節(jié),因此第二個(gè)int成員的地址可以除以四。所以實(shí)際上是8個(gè)字節(jié)。并且#pragma pack(1)允許編譯器強(qiáng)制連續(xù)排列結(jié)構(gòu)數(shù)據(jù)。這樣,sizeof(struct s)的輸出是5。