gpt4 book ai didi

c - 位域结构填充

转载 作者:太空宇宙 更新时间:2023-11-04 04:43:31 24 4
gpt4 key购买 nike

我想制作一个 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 位,我尝试使用 unsigned short 仍然是 40 位。

但我只想使用 36 位。

有什么办法可以做到吗?

谢谢

最佳答案

对象的大小总是sizeof(char) 的倍数. char持有 8大多数平台上的位。容纳36位,您将需要一个大小等于 5*sizeof(char) 的对象然后你得到 40位。

您需要一个大小为 5 的对象持有33 - 40位。

关于c - 位域结构填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23640714/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com