c++ - ( var > x) 和 ( x < var) 之间有什么区别吗?

标签 c++ coding-style

我见过嵌入式编程以相反的顺序使用条件,例如在条件检查中将文字放在左侧而不是右侧。

( var > 0) and ( 0 < var) 

这有什么原因吗?或者它只是一种编码风格?

谢谢

编辑:感谢大家回答并消除我的疑问。

最佳答案

它们是等价的。唯一的区别可能是 operator</>是重载的,并且这些重载具有不同的含义(但不鼓励)。

我见过人们为相等运算符这样做,以避免错误地使用赋值。所以代替这个:

if (a==0) ...

错误地这样写:

if (a=0) ... // compiles, and not what we wanted, a assigned to zero, and "if" never taken

如果我们使用反向比较:

if (0==a) ...

然后错误的版本无法编译:

if (0=a) ... // doesn't compile

但这在今天并不是太重要,因为大多数编译器都会 warn你的if (a=0) .

正如 Max Langhof 所指出的,这种相反的条件称为 Yoda conditions由于顺序与正常的英语顺序不同。

关于c++ - ( var > x) 和 ( x < var) 之间有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52475199/

相关文章:

c++ - 接口(interface)和实现问题?

注释的 Android Studio 代码样式

c++ - 如何找到操作系统的名称?

c++ - 无法将 C++ 类型转换为 QML

c++ - 多个键盘 - 捕获每个流 - 在 Mac 上 - 如何?

c# - 如何在没有接口(interface)的情况下模拟多重继承?

python - 在具有多个缩进的 Python 中保持 79 个字符的行限制

python - 跟踪/记录您当前从事的编程项目的最佳方式是什么

haskell - null 而不是 ==

c++ - 使用 intel 编译器编译 DLL 时出错