Q
關於產品碳構建
4
A
回答
11
bitfield。 x是1位長。
每個字段訪問和操作 ,好像它是一個 結構的普通構件。有符號的關鍵字和 無符號意味着你期望的, ,只是有趣的是注意 一個兩個的 補充機器上的1位有符號字段只能取 值0或-1。這些聲明允許包含const和 易失性限定符,其中聲明爲 。
主要使用位域的要麼是 允許數據的緊密堆積或以 能夠指定內的一些 外部產生的數據文件的字段。 C 不能保證機器字內的 字段的順序,所以如果你使用 後面的原因,你的程序將不僅僅是不可移植的,它也會依賴於編譯器。 標準表示字段被打包爲'存儲單元',其中 通常是機器字。包裝 的順序以及位域 是否可能跨越存儲單元邊界,都是 實現定義的。要強制 與存儲單元邊界對齊,請使用 零寬度字段,然後在想要對齊的 之前使用零寬度字段。
小心使用它們。它可能需要 令人驚訝的運行時間代碼量 來操縱這些東西,並且您可以使用更多的空間比使用 保存更多的空間。
位域沒有地址 - 您的 不能有指向它們的指針或它們的數組 。
http://publications.gbdirect.co.uk/c_book/chapter6/bitfields.html
0
即語法用於表示位字段(即比特比數據類型本身窄的場),所以在您的示例中的「X」是真正使用int的1個比特。
一個更有用的例子可能是這樣的
char x:4;
char y:4;
這將打包兩個4位字段爲一個字節。當然,優點是節省每個字節都很關鍵的體系結構中的空間。
1
這是一個1位長的字段。關於wikipedia有一個很好的討論。
3
這些是位域。在結構中可以定義多少位分配給變量(覆蓋的變量類型的標準)在上述X,僅使用1個字節的示例
,因此只能採取的值0或1。
請參閱中的以下示例。請點擊鏈接瞭解更多信息。
struct {
/* field 4 bits wide */
unsigned field1 :4;
/*
* unnamed 3 bit field
* unnamed fields allow for padding
*/
unsigned :3;
/*
* one-bit field
* can only be 0 or -1 in two's complement!
*/
signed field2 :1;
/* align next field on a storage unit */
unsigned :0;
unsigned field3 :6;
}full_of_fields;
相關問題
- 1. 關於產品DispatcherUnhandledException
- 2. 關於產品:開關
- 3. 關於產品廠設計建築
- 4. 使用Maven構建產品
- 5. Magento:構建產品的URL
- 6. 關於產品NullExceptionError在C#
- 7. 關於產品的NSMutableArray
- 8. 關於產品的同時
- 9. 關於產品的LINQ
- 10. 關於產品的.htaccess
- 11. 關於產品X = Y ==ž
- 12. C++ - 關於產品的typedef
- 13. 關於產品在Python
- 14. 關於產品的strcmp
- 15. 關於產品的NSMutableArray
- 16. 關於產品使用CELLID
- 17. 關於產品CronTrigger - 石英
- 18. 關於產品@property和@synthesize
- 19. 關於產品使用.NET
- 20. 關於產品產量return語句
- 21. 關於類別產品關係模型的建議
- 22. 構建新產品:ASP.NET與SharePoint 2010
- 23. 建模產品定價結構
- 24. 我如何構建WooCommerce產品集合?
- 25. 關於產品的jQuery了slideDown
- 26. 關於產品在C unsigned int類型
- 27. 關於產品蛋糕模式
- 28. 關於產品選擇查詢(訪問)
- 29. 關於產品列表<T>
- 30. 關於產品的foreach和代表
謝謝!但是這只是將它聲明爲一個常規整數有什麼好處? – 2009-06-17 15:58:26