( var > x) 和 ( x < var) 之间有什么区别?

Any differences between ( var > x) and ( x < var)?

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

( 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

但这在今天并不太重要,因为大多数编译器会 warnif (a=0)

正如 Max Langhof 所指出的,这种颠倒的情况被称为 Yoda conditions,因为顺序与正常的英语顺序不同。

这只是个人品味。好吧,有些人争辩说,在比较相等性时,文字应该总是在左侧,以便为意外分配获得编译器错误:

预期:

if(x == 42) // ...

打字错误:

if(x = 42) // ... most likely a warning

编译器错误:

if(42 = x) // ...