bit-fields 相关问题

位字段用于将多个逻辑值紧凑地存储为短的一系列位,其中每个单个位可以被单独寻址。

为什么bit endianness是bitfields中的一个问题?

任何使用位域的可移植代码似乎都区分了小端和大端平台。有关此类代码的示例,请参阅linux内核中struct iphdr的声明。我没能......

回答 7 投票 52

获取位字段结构成员的大小

我已经定义了一个结构,如:struct mystruct {uint32_t onebyte:8; uint32_t twobytes:16; uint32_t threebits:3; };我知道C将位字段定义为至少与...一样宽。

回答 2 投票 0

具有可变数量的成员和阵列中的位域的结构

我有很多结构,看起来像:struct S {float a; uint8_t b; uint8_t c:4; uint8_t d:2; uint8_t e:1; uint8_t f:1; uint8_t g:1; ...} __attribute __((packed)); ......的数量

回答 1 投票 -3

多址访问位域而不改变价值,性能?

给定一个带有位字段的结构,例如:struct {long f0:6;长f1:6;长f2:2;长f3:2; S;如果以下代码之间存在性能差异:1 -...

回答 1 投票 2

根据位域创建字符串

我使用5位位域来跟踪python脚本中的报警系统的状态。例如,MSB中的0表示“Not Armed”,而MSB中的1表示“Armed”等。这样可以在...上启用XOR。

回答 1 投票 1

布尔值对位域的优点

我工作的代码库很老了。虽然我们使用c ++ 11编译几乎所有内容。许多代码大部分都是用c编写的。在旧区开发新课程时,我总能发现自己......

回答 3 投票 1

位字段:设置与测试和设置(用于性能)

我有大量像这样的C结构实例:struct mystruct {/ * ... * / unsigned flag:1; / * ... * /}; flag最初为0,但在退出某个时必须为1 ...

回答 9 投票 6

C ++中的内存模型:为什么struct中的两个整数分配在同一个内存位置?

参考我在下面粘贴的cppreference.com上的代码片段,为什么整数b和c分配在同一个内存位置:struct S {char a; //内存位置#1 int ...

回答 1 投票 2

C中变量名后的冒号[重复]

可能重复:结构声明中的冒号是什么意思,例如:1,:7,:16或:32?这是参考页面的C代码示例。 signed int _exponent:8;什么意思 ...

回答 4 投票 20

我不明白这个C代码的行为(与2位字段结构,字和字节数组的联合)

我在C中有以下代码:typedef union _REG_CiFIFOCON {struct {uint32_t RxNotEmptyIE:1; uint32_t RxHalfFullIE:1; uint32_t RxFullIE:1; ...

回答 1 投票 0

为什么以及如何使C ++位域不可移植?

关于位域声称位域是不可移植的各种问题我都遇到过很多评论,但是我从来没有能够找到解释原因的来源。从表面看,我......

回答 2 投票 7

使用位字段的结构大小不正确

我最近不得不处理结构中的位字段,并且遇到了一个我无法解释的行为。根据个体sizeof,以下结构应为9个字节。但做一个...的大小...

回答 1 投票 2

如何使用位字段(struct)重写此代码

我需要使用结构访问签名短类型数字的高位,低位和数位。不知道它,正在上网,但没有太多关于签名的信息......

回答 1 投票 0

是否有更好的方法来缓解此警告?

我有一个结构,我使用位域来优化内存。我有一个uint64_t类型,我想打印它的值。编译时,它会向我显示此警告:格式'%lu'需要类型'long ...的参数

回答 3 投票 3

在转换时如何将连续的位字段转换为变量

我想在一些结构中使用标志,比方说:struct {flag1:1; FLAG2:1; Flag3相同的:1; Flag4的:1; }标志;标志3和4描述了我的目标项目现在的模式。我会 ...

回答 4 投票 0

可以将一点字段结构实例化为立即数吗?

假设我有以下(组成)定义:typedef union {struct {unsigned int red:3; unsigned int grn:3; unsigned int blu:2;比特; uint8_t reg; } color_t;我知道我 ...

回答 1 投票 0

关闭优化时未解析的外部符号__aullshr

我正在使用Visual Studio 2015 C / C ++编译器编译一段UEFI C代码。编译器的目标是IA32,而不是X64。使用“/ O1”打开优化时,构建正常。当转...

回答 2 投票 3

C ++中的多个相邻位字段

我在浏览cppreference时看到了多个相邻的位域。 unsigned char b1:3,:2,b2:6,b3:2;那么,它的目的是什么?我应该何时何地使用它?

回答 3 投票 1

使用-1将所有位设置为true是否安全?

我已经看到这种模式在C&C ++中使用了很多。 unsigned int flags = -1; //所有位都是真的这是一个很好的可移植方式来完成这个吗?或者使用0xffffffff或〜0更好?

回答 20 投票 127

返回对位域的访问类型

#包括 #包括 struct C {uint32_t x:2; bool y:2; }; int main(){C c {0b1}; std :: cout <<(static_cast (0b1)<< ...

回答 1 投票 1

© www.soinside.com 2019 - 2024. All rights reserved.