Mat*_*Mat 4 c++ struct boolean bit-fields
假设我需要在结构中存储8个bool,但是我想一起使用它们只有1个字节,那么我可以这样做:
struct myStruct {
bool b1:1;
bool b2:1;
bool b3:1;
bool b4:1;
bool b5:1;
bool b6:1;
bool b7:1;
bool b8:1;
};
Run Code Online (Sandbox Code Playgroud)
有了这个我可以做的事情
myStruct asdf;
asdf.b3=true;
asdf.b4=false;
if(asdf.b1)
...
Run Code Online (Sandbox Code Playgroud)
到目前为止这是正确的吗?(我实际上并不知道,我之前从未使用过bitfields)
好的 - 但是也可以创建一个8个bool的静态数组,这样它们只能使用8位但是我仍然可以通过索引来加入它们吗?
就像是
struct myStruct {
public:
bool b[8]:8;
};
Run Code Online (Sandbox Code Playgroud)
也许?(有了这个,我得到一个错误C2033)
谢谢您的帮助!
Dan*_*ook 10
我建议使用std::bitset 那样你可以简单地声明:
std::bitset<8> asdf;
Run Code Online (Sandbox Code Playgroud)
并与[]一起使用.
asdf[0] = true;
asdf[3] = false;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6688 次 |
| 最近记录: |