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

正文內(nèi)容

sizeof詳解-資料下載頁

2025-08-04 09:40本頁面
  

【正文】 sizeof(i))的值為2,所以i的偏移量為2,加上sizeof(i)等于6,能夠被2整除,所以整個S1的大小為6?! ⊥瑯?,對于sizeof(S3),s的偏移量為2,c2的偏移量為8,加上sizeof(c2)等于9,不能被2整除,添加一個填充字節(jié),所以sizeof(S3)等于10?! ‖F(xiàn)在,朋友們可以輕松的出一口氣了,:)  還有一點要注意,“空結(jié)構(gòu)體”(不含數(shù)據(jù)成員)的大小不為0,而是1。試想一個“不占空間”的變量如何被取地址、兩個不同的“空結(jié)構(gòu)體”變量又如何得以區(qū)分呢于是,“空結(jié)構(gòu)體”變量也得被存儲,這樣編譯器也就只能為其分配一個字節(jié)的空間用于占位了。如下:  struct S5 { }?! izeof( S5 )。 // 結(jié)果為1  8. 含位域結(jié)構(gòu)體的sizeof  前面已經(jīng)說過,位域成員不能單獨被取sizeof值,我們這里要討論的是含有位域的結(jié)構(gòu)體的sizeof,只是考慮到其特殊性而將其專門列了出來?! 99規(guī)定int、unsigned int和bool可以作為位域類型,但編譯器幾乎都對此作了擴展,允許其它類型類型的存在。使用位域的主要目的是壓縮存儲,其大致規(guī)則為:  1) 如果相鄰位域字段的類型相同,且其位寬之和小于類型的sizeof大小,則后面的字段將緊鄰前一個字段存儲,直到不能容納為止;  2) 如果相鄰位域字段的類型相同,但其位寬之和大于類型的sizeof大小,則后面的字段將從新的存儲單元開始,其偏移量為其類型大小的整數(shù)倍;  3) 如果相鄰的位域字段的類型不同,則各編譯器的具體實現(xiàn)有差異,VC6采取不壓縮方式,DevC++采取壓縮方式;  4) 如果位域字段之間穿插著非位域字段,則不進行壓縮;  5) 整個結(jié)構(gòu)體的總大小為最寬基本類型成員大小的整數(shù)倍?! ∵€是讓我們來看看例子?! ∈纠?:  struct BF1  {  char f1 : 3?! har f2 : 4?! har f3 : 5?! ?! ∑鋬?nèi)存布局為:  |_f1__|__f2__|_|____f3___|____|  |_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|_|  0 3 7 8 1316  位域類型為char,第1個字節(jié)僅能容納下f1和f2,所以f2被壓縮到第1個字節(jié)中,而f3只  能從下一個字節(jié)開始。因此sizeof(BF1)的結(jié)果為2?! ∈纠?:  struct BF2  {  char f1 : 3。   short f2 : 4?! har f3 : 5?! ?! ∮捎谙噜徫挥蝾愋筒煌?,在VC6中其sizeof為6,在DevC++中為2?! ∈纠?:  struct BF3  {  char f1 : 3。  char f2?! har f3 : 5。  }。  非位域字段穿插在其中,不會產(chǎn)生壓縮,在VC6和DevC++中得到的大小均為3?! ?. 聯(lián)合體的sizeof  結(jié)構(gòu)體在內(nèi)存組織上是順序式的,聯(lián)合體則是重疊式,各成員共享一段內(nèi)存,所以整個聯(lián)合體的sizeof也就是每個成員sizeof的最大值。結(jié)構(gòu)體的成員也可以是復合類型,這里,復合類型成員是被作為整體考慮的?! ∷?,下面例子中,U的sizeof值等于sizeof(s)?! nion U  {  int i?! har c?! 1 s?! 。
點擊復制文檔內(nèi)容
化學相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1