C ++中的正确​​形式

时间:2012-08-30 20:34:06

标签: c++ defensive-programming

  

可能重复:
  What is the difference between these (bCondition == NULL) and (NULL==bCondition)?

this question开始,它说“比较左侧的const对象”是一些“比其他方式更好”。这是为什么?

2 个答案:

答案 0 :(得分:1)

任何体面的编译器都会警告你在条件表达式中的赋值,所以这些形式现在不是很相关。

  

另一点“对于> = 0 //好的技巧变量使用无符号”我听说使用无符号可能会令人困惑,除非有原因否则不应使用。有人同意或反驳这个吗?

当值应为unsigned时使用unsigned

答案 1 :(得分:0)

这是为了避免“=”与“==”错误。如果你的意思是“==”但输入“=”并且LHS上的对象是常量,编译器会抱怨。例如,

if ( 3 == x )

优先于

if ( x == 3 )

因为如果你输入

if ( 3 = x )

然后你会收到一个错误,但如果你输入

if ( x = 3 )

然后你可能会得到一个错误!