gpt4 book ai didi

c++ - C4800 错误,使用 Visual Studio 2013 编译

转载 作者:行者123 更新时间:2023-11-28 02:54:29 25 4
gpt4 key购买 nike

Visual Studio 2013 编译器给我警告 C4800:

'UInt32' : forcing value to bool 'true' or 'false' for the following code. (evn->unk08 is a void* array)

这是为什么呢?为了安全起见,我添加了额外的支架。 != 运算符也会出现同样的错误。有更好的方法吗?

if ((((UInt32)(evn->unk08[2]) & 8)) == 0)

最佳答案

您可以(并且我应该)尝试将表达式的一部分提取到一些变量中,然后查看问题是否(以及在哪里)仍然出现,例如

UInt32 something = reinterpret_cast<UInt32>(evn->unk08[2]);
bool isSomeFlagSet = (something & 8) == 0;
if (isSomeFlagSet) { /* ... */ }

这样做,除了避免迷失在所有这些括号之外,还有助于提高可读性,并且还可以更轻松地调试表达式所有部分的值,因为它们存储在具有(希望是有意义的)名称的变量中。

关于c++ - C4800 错误,使用 Visual Studio 2013 编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22302300/

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