gpt4 book ai didi

c++ - 在 C++ 中使用双字检查多个 bool 条件

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:10:16 24 4
gpt4 key购买 nike

对于在 C++ 中使用 DWORD 代替 bool 值,我真的很陌生。因此,请原谅我的问题。

我有一个枚举:

enum foo
{
foo1 = 0x0;
foo2 = 0x1
//....
}
DWORD foo;

我正在使用这个枚举来检查多个条件:

if(somethinghappenstothisvariable)
{
foo|= foo1;
}

if(somethinghappenstosecondvariable)
{
foo|=foo2;
}

现在在另一个文件中我必须检查各个变量条件

if(foo &foo1)
{
//do something;
}

if(foo & foo2)
{
//do something;
}

我认为如果两个条件都为 true,则 |= 会将值加到 DWORD 中,从而导致 foo & foo2 只会为真,而 foo & foo1 不会为真,因为 DWORD 的值将为 1。因此,我想知道是否有任何方法可以检查单个 DWORD 值。

最佳答案

问题:1 = 位 0,0 无效。要检查每个“条件”应该代表一个单独的位(位 0 = 1,位 1 = 2,等等)

所以 - 一个简单的改变:foo1 = 0x01; foo2 = 0x02; 应该修复它。注意:任何额外的检查都应该代表位值,而不是序数。换句话说,foo3 = 0x04;(不是 0x03;)

关于c++ - 在 C++ 中使用双字检查多个 bool 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42841290/

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