[英]structure padding with bit fields
我想用36位制作一個結構,所以我嘗試了下面的結構
#pragma pack(push, 1)
struct{
unsigned int a : 5;
unsigned int b : 1;
unsigned int c : 11;
unsigned int d : 2;
unsigned int e : 2;
unsigned int f : 1;
unsigned int g : 8;
unsigned int h : 6;
}HDR;
#pragma pack(pop)
sizeof(HDR):5、8 * 5 = 40位,我嘗試使用無符號短型40位。
但是我只想使用36位。
有什么辦法可以做到嗎?
謝謝
對象的大小始終是sizeof(char)
的倍數。 在大多數平台上, char
保留8
位。 要容納36
位,您將需要一個大小等於5*sizeof(char)
的對象,您將獲得40
位。
您將需要大小的物體5
保持33
- 40
位。
許多機器的最小大小為8位,因此您無法以任何方式達到36位。 總是會有打包位,以使其達到8位,16位或32位邊界。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.