c++ - 除了节省空间的明显好处之外,位域是否有任何隐藏的成本或好处?

标签 c++ bit-fields

这是声明位域的方式:

unsigned m_bitfield1 : 2;  // a bitfield that occupies 2 bits
unsigned m_bitfield2 : 1;  // a bitfield that occupies 1 bit

位域只是一个具有特定位大小的小域。

我的问题是:我是否可以使用自己的算法来处理默认数据类型(例如占用大量不必要空间的整数或 float )作为任意大小的较小部分的集合,或者使用位域有一些隐藏的好处?谢谢。

最佳答案

可以将整数用作您自己访问和管理的位的集合。但是经常有un-thought-of costs使用编译器生成的位字段(可能还有您自己的位字段),您应该注意这些。

关于c++ - 除了节省空间的明显好处之外,位域是否有任何隐藏的成本或好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8569204/

相关文章:

c - 位字段变量命名约定和无效类型错误 gcc 4.2.1 freebsd 7

C++ 从 regex_iterator 获取匹配项

c++ - 计算 3x3 对称矩阵谱分解的快速方法

c++ - 常规命名空间内匿名命名空间内的符号链接(symbolic link)

c - 无符号位域类型 : int or unsigned int

delphi - 如何模拟Delphi记录中的位域?

c++ - 为什么 C++17 中 std::function 的 operator() 会发生变化?

c++ - Undefined Behavior 和 Ill-formed 之间的区别,不需要诊断消息

c++ - 为什么这是模棱两可的?我能做些什么来解决这个问题?

c++ - 重新启动后位域会出现硬故障