freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

sizeof詳解(文件)

2025-08-22 09:40 上一頁面

下一頁面
 

【正文】 小為結(jié)構(gòu)體最寬基本類型成員大小的整數(shù)倍,如有需要編譯器會在最末一個成員之后加上填充字節(jié)(trailing padding)。(((s *)0)m)  例如,想要獲得S2中c的偏移量,方法為  size_t pos = offsetof(S2, c)?! ∵@里敘述起來有點拗口,思考起來也有點撓頭,還是讓我們看看例子吧(具體數(shù)值仍以VC6為例,以后不再說明):  struct S3  {  char c1。  S1的最寬簡單成員的類型為int,S3在考慮最寬簡單類型成員時是將S1“打散”看的,所以S3的最寬簡單類型為int,這樣,通過S3定義的變量,其存儲空間首地址需要被4整除,整個sizeof(S3)的值也應該被4整除。它是用來調(diào)整結(jié)構(gòu)體對齊方式的,不同編譯器名稱和用法略有不同,VC6中通過pragma pack實現(xiàn),也可以直接修改/Zp編譯開關(guān)?! truct S3  {  char c1?! ragma pack(pop) // 恢復先前的pack設置  計算sizeof(S1)時,min(2, sizeof(i))的值為2,所以i的偏移量為2,加上sizeof(i)等于6,能夠被2整除,所以整個S1的大小為6。如下:  struct S5 { }。使用位域的主要目的是壓縮存儲,其大致規(guī)則為:  1) 如果相鄰位域字段的類型相同,且其位寬之和小于類型的sizeof大小,則后面的字段將緊鄰前一個字段存儲,直到不能容納為止;  2) 如果相鄰位域字段的類型相同,但其位寬之和大于類型的sizeof大小,則后面的字段將從新的存儲單元開始,其偏移量為其類型大小的整數(shù)倍;  3) 如果相鄰的位域字段的類型不同,則各編譯器的具體實現(xiàn)有差異,VC6采取不壓縮方式,DevC++采取壓縮方式;  4) 如果位域字段之間穿插著非位域字段,則不進行壓縮;  5) 整個結(jié)構(gòu)體的總大小為最寬基本類型成員大小的整數(shù)倍?! har f3 : 5。  示例2:  struct BF2  {  char f1 : 3。  由于相鄰位域類型不同,在VC6中其sizeof為6,在DevC++中為2?! ?! ∷?,下面例子中,U的sizeof值等于sizeof(s)?! ?! har c。  9. 聯(lián)合體的sizeof  結(jié)構(gòu)體在內(nèi)存組織上是順序式的,聯(lián)合體則是重疊式,各成員共享一段內(nèi)存,所以整個聯(lián)合體的sizeof也就是每個成員sizeof的最大值?! har f2?! har f3 : 5?! ∑鋬?nèi)存布局為:  |_f1__|__f2__|_|____f3___|____|  |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|  0 3 7 8 1316  位域類型為char,第1個字節(jié)僅能容納下f1和f2,所以f2被壓縮到第1個字節(jié)中,而f3只  能從下一個字節(jié)開始?! ∈纠?:  struct BF1  {  char f1 : 3。 // 結(jié)果為1  8. 含位域結(jié)構(gòu)體的sizeof  前面已經(jīng)說過,位域成員不能單獨被取sizeof值,我們這里要討論的是含有位域的結(jié)構(gòu)體的sizeof,只是考慮到其特殊性而將其專門列了出來?! ‖F(xiàn)在,朋友們可以輕松的出一口氣了,:)  還有一點要注意,“空結(jié)構(gòu)體”(不含數(shù)據(jù)成員)的大小不為0,而是1?! har c2。  int i。最
點擊復制文檔內(nèi)容
化學相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1