c++ - 我可以一直使用 1 位 boolean 值吗?

标签 c++ boolean bit

在我看来,对于像 bool 这样的二进制变量,您只需要一位。明确告诉所有 bool 只使用 1 位是否是一个错误的决定?

struct Banana { 

    // little fields
    bool on_off : 1;
    bool yes_no : 1;
    bool left_right : 1;
    bool alive_dead : 1;
    bool in_out : 1;

};

编辑:

我知道不能取一个字段的地址。还有其他缺点吗?

最佳答案

如果您有很多这样的东西,就可以节省空间。但它确实为正常的单字节解决方案的每个清除/设置/检查操作添加了至少一个额外的 ANDOR 指令。

在整个方案中,除非您实际拥有大量数据,否则可能没有任何好处。

关于c++ - 我可以一直使用 1 位 boolean 值吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18249672/

相关文章:

c++ - 如何确定无格式输入函数读取的字符数?

python - 与 GPU 上的 torch.FloatTensor 进行比较的优雅方式

python - Python .csv 文件中字段的 boolean 值

c - 二进制文件和文本文件在存储方面的区别?

java - 在Java中从UDP数据包中读取位

c++ - 不使用 count() 将一个数组的每个元素的计数赋给另一个数组的每个元素

c++ - 深度优先搜索树边分类

C# 安装程序变量

java - Java 新手 : what are the bits between i and j in 10000000000

c++ - 如何将 qml 文件集成到 qt-widgets 应用程序中?