Login | Register   
LinkedIn
Google+
Twitter
RSS Feed
Download our iPhone app
TODAY'S HEADLINES  |   ARTICLE ARCHIVE  |   FORUMS  |   TIP BANK
Browse DevX
Sign up for e-mail newsletters from DevX


Tip of the Day
Home » Tip Bank » C++
Language: C++
Expertise: All
Mar 27, 2000

Reversing Operands' Order in an Equality Expression

An equality expression takes two operands, the second of which is often a constant or an rvalue:

 
  if (x==4)  // 4 is an rvalue
  // .. do something

  if (y!=MAX_COUNT) // MAX_COUNT is a constant
  // .. do something

Some programmers prefer to reverse the operands' order:

 
  if (4==X)
  // .. do something

  if (MAX_COUNT!=y)  
  // .. do something

Because the equality and inequality operators are commutative, reversing the order of their operands doesn't change the result. However, the benefit is that a reversed order saves you from using = instead of == by mistake. If you put = instead of == in a reversed order expression, for example:

 
if (4=X)  // mistakenly used = instead of ==
  // .. do something

Your compiler will catch the error and complain about an attempt to assign to an rvalue.

Personally, I don't like the reverse order trick because it makes the code somewhat distorted: the programmer's intention is to check the value of x, not the value of the constant 4. Still, if you find yourself mistaking = for ==, you may adopt this coding style. Note that a good compiler should warn about assignments inside conditions, which makes this techniques less needed than it might seem at first.

Danny Kalev
 
Comment and Contribute

 

 

 

 

 


(Maximum characters: 1200). You have 1200 characters left.

 

 

Sitemap
Thanks for your registration, follow us on our social networks to keep up-to-date