gpt4 book ai didi

C++ 'true' 和 'false' 关键字在 Visual C++ 6.0 中突然不正确或错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:48:58 25 4
gpt4 key购买 nike

我的编译器 (VC++ 6.0 sp6) 显然已经疯了。在某些代码片段中,我看到“bool mybool = true;”评估并分配 false,反之亦然。将 true/false 关键字更改为 1/0 使其工作正常。在不更改 true/false 关键字的情况下,相同的代码可以在其他地方正常编译。

这可能是什么原因造成的?我的第一个想法是 RAM 或磁盘损坏,但一切都很好。我离重新格式化我的驱动器并重新安装所有东西不远了,但我很害怕我仍然会看到同样的不当行为。

在某个地方的宏或链接库在技术上是否有可能搞砸“true”和“false”的含义?

更新:谜团已揭开。我机器上的一个环境变量标志被设置为“false”,一些预处理器代码对其进行插值的方式重新定义了关键字。

最佳答案

预处理器宏当然可以做到这一点,尽管那会非常令人惊讶。检查是否是这种情况的一种方法是

#ifdef true
# error "true is defined as a macro"
#endif
#ifdef false
# error "false is defined as a macro"
#endif

评论回复:

找到一个您看到此行为的非头文件,最好是带有少量#includes 的文件。

在包含列表的中间,放置#ifdef#error 指令。

如果出现错误,您知道它出现在包含的前半部分,如果没有出现,则出现在后半部分。将一半分成两半并重复。当您将其缩小到一个标题时,打开该标题。如果该 header 包含任何 header ,请针对它包含的 header 列表重复该过程。最终你应该能够找到 #defines 。乏味,我同意。

关于C++ 'true' 和 'false' 关键字在 Visual C++ 6.0 中突然不正确或错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/509642/

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