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

正文內容

sizeof詳解(完整版)

2024-09-06 09:40上一頁面

下一頁面
  

【正文】 ouble )。// error  struct S  {  unsigned int f1 : 1。 // n動態(tài)賦值  char ary[n]。所以在32位計算機中,一個指針變量的返回值必定是4(注意結果是以字節(jié)為單位),可以預計,在將來的64位系統(tǒng)中指針變量的sizeof結果為8。 // 結果為4  sizeof( pi )。 // 結果為4,字符 末尾還存在一個NULL終止符  sizeof( a2 )。讓我們先看一個結構體:  struct S1  {  char c?! 《x上面的變量后,加上斷點,運行程序,觀察s1所在的內存,你發(fā)現了什么  ,s1的地址為0x0012FF78,其數據內容如下:  0012FF78: 61 CC CC CC FF FF FF FF  發(fā)現了什么怎么中間夾雜了3個字節(jié)的CC看看MSDN上的說明:  When applied to a structure type or variable, sizeof returns the actual size, which may include padding bytes inserted for alignment.  原來如此,這就是傳說中的字節(jié)對齊??!一個重要的話題出現了?! ∽止?jié)對齊的細節(jié)和編譯器實現相關,但一般而言,滿足三個準則:  1) 結構體變量的首地址能夠被其最寬基本類型成員的大小所整除;  2) 結構體每個成員相對于結構體首地址的偏移量(offset)都是成員大小的整數倍,如有需要編譯器會在成員之間加上填充字節(jié)(internal adding);  3) 結構體的總大小為結構體最寬基本類型成員大小的整數倍,如有需要編譯器會在最末一個成員之后加上填充字節(jié)(trailing padding)。  這里敘述起來有點拗口,思考起來也有點撓頭,還是讓我們看看例子吧(具體數值仍以VC6為例,以后不再說明):  struct S3  {  char c1。它是用來調整結構體對齊方式的,不同編譯器名稱和用法略有不同,VC6中通過pragma pack實現,也可以直接修改/Zp編譯開關?! ragma pack(pop) // 恢復先前的pack設置  計算sizeof(S1)時,min(2, sizeof(i))的值為2,所以i的偏移量為2,加上sizeof(i)等于6,能夠被2整除,所以整個S1的大小為6。使用位域的主要目的是壓縮存儲,其大致規(guī)則為:  1) 如果相鄰位域字段的類型相同,且其位寬之和小于類型的sizeof大小,則后面的字段將緊鄰前一個字段存儲,直到不能容納為止;  2) 如果相鄰位域字段的類型相同,但其位寬之和大于類型的sizeof大小,則后面的字段將從新的存儲單元開始,其偏移量為其類型大小的整數倍;  3) 如果相鄰的位域字段的類型不同,則各編譯器的具體實現有差異,VC6采取不壓縮方式,DevC++采取壓縮方式;  4) 如果位域字段之間穿插著非位域字段,則不進行壓縮;  5) 整個結構體的總大小為最寬基本類型成員大小的整數倍。  示例2:  struct BF2  {  char f1 : 3。  }。  }。  9. 聯(lián)合體的sizeof  結構體在內存組織上是順序式的,聯(lián)合體則是重疊式,各成員共享一段內存,所以整個聯(lián)合體的sizeof也就是每個成員sizeof的最大值?! har f3 : 5。
點擊復制文檔內容
化學相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1