提问人:LPo 提问时间:11/17/2023 更新时间:11/17/2023 访问量:82
布尔变量为 true,未传递 if (true) 条件 [closed]
boolean variable at true not passing if (true) condition [closed]
问:
我有一个非常奇怪的问题,发生在一些单元测试脚本上。
我有这个代码示例:
bool test = foo.getOtherFoo()->getStatus(); // #1
if (test == true) // #2
{
std::cout << "OK";
}
else
{
std::scout << "NOK";
}
其中 getStatus() 返回内部布尔状态。我的方法似乎按照我期望的方式行事,因为测试在必要时会成为现实。
然后我有那个愚蠢的 if 条件,它应该是真的,因为我的 var 测试是真的。 但这就是奇怪的事情发生的地方。条件似乎是假的,因为打印了 NOK。
在点 #1 处,我的调试器将我的 var 测试识别为布尔变量,该变量为 true。
在点 #2 处,我的调试器将我的 var 测试识别为值为 80 (??) 的布尔变量
条件为 false,但条件为 true。if (test == true)
if (test)
我正在使用 msvc 2019 在 Windows 上编译。
我尝试使用 gcc 在 linux 上编译相同的代码,一切正常。
有没有人遇到或听说过这样的问题?似乎是记忆问题,但我没有想法了。
也无法重现该问题,也无法尝试隔离该代码段,这就是为什么我只能为您提供这个相当简单的示例。
答: 暂无答案
评论