gpt4 book ai didi

c++ - 我可以通过更明确地消除类似 (myUnsigned >= MACRO_THAT_IS_ZERO) 的比较中的警告吗?

转载 作者:太空宇宙 更新时间:2023-11-04 13:25:34 25 4
gpt4 key购买 nike

我在 C++ Builder XE8 中使用基于 clang 的编译器(--version 将其报告为 Embarcadero Technologies Inc. clang version 3.1 (35091.dcc1b50.3081e8f)(基于LLVM 3.1svn)).

我的代码包含无符号整数值与宏的比较,在 myUnsignedInt >= MY_MACRO 的脉络中,它可以在 MY_MACRO 时生成始终为真或始终为假的警告是 0。我知道 clang 有办法通过以某种方式明确说明您的意图来消除某些其他警告 - if (foo = bar) 警告,但是 if ((foo = bar)) 没有——那么有没有办法明确这样的比较(特别是在 clang 中)?

最佳答案

您使用宏而不是 const int MY_CONSTANT 有什么原因吗?

没有正式的方法来消除警告。如果编译器愿意的话,它们可以警告您有关空格的使用。因此,const 建议并不能保证警告会得到解决。但是,宏是文字替换,因此编译器甚至不知道为什么它会看到毫无意义的语句 if (x>=0),而它会看到 if (x>=c )c==0 所以它至少有更好的理解。

关于c++ - 我可以通过更明确地消除类似 (myUnsigned >= MACRO_THAT_IS_ZERO) 的比较中的警告吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33493562/

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