[英]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.