<div dir="ltr"><div><div>Hi Richard <br>I agree with Volker and Charles that readability is the single most important thing.<br></div>The fact is that we spend more time reading code than writing it so it is worth taking the time to make it as readable as possible.<br><br></div><styleOpinion><br>To that end there are 2 changes I would make to this example namely to dispose of single letter variable names and magic numbers so:<br><div><div><div><div>// ----------<br> if (something == 45)<br>
  {<br>
    for (i = ...)<br>
    {<br>
      a += 5;<br>
    }<br>
  }<br>
  else<br>
  {<br>
    do something else;<br>
  }<br></div><div>// ----------<br> becomes: <br><br></div><div>// ----------<br> #define INTERESTING_THRESHOLD 45<br></div><div> #define STEP_SIZE                            5<br><br>  if (something == INTERESTING_THRESHOLD)<br>  {<br>
    for (increment_number = 0;  increment_number < required_number_of_increments; increment_number ++)<br>    {<br>
      useful_variable_name += STEP_SIZE;<br>
    }<br> 
}<br>
  else<br>
  {<br>
    do something else;<br>
  }<br>// ----------<br> </styleOpinion><br><br></div><div><codingTip><br></div>When cutting, pasting & editing code the following can and does happen:<br>  if (something == INTERESTING_THRESHOLD)<br></div><div>becomes<br>  if (something_else >= TEST_THRESHOLD)<br></div><div> becomes<br></div><div>
  if (final_agreed_on_variable_name = FinalThreshold_CONSTANT)<br><br></div><div>I'm sure you can all see the bug in the final line where the 'if' is testing the result of the assignment '=' rather than the intended comparison '==' which has been edited out. We now have a corrupted variable value and the 'if' is always executed. <br>This is a typical Friday afternoon/Monday morning bug. It is true that many compilers will spot this and give you an error or at least a warning but not all of them do, I personally lost several days to an instance of this bug and have adopted the following coding practice to prevent it from happening again.<br></div><div><br></div><div>The answer is to simply put the constant value on the left so:<br></div><div>if(CONSTANT == variable) // works as expected but the bug<br></div><div>if(CONSTANT = variable)   // just won't compile.<br></div>Granted the code is not as easy to read especially when '>' or '<' are in play but I find this to be a worthwhile compromise.<br><div></codingTip><br></div><br></div><div>IPersonallyFindCamelCapsToBeAn<wbr>ApallingAffrontToComprehesibil<wbr>ity and_find_the_lower_case_<wbr>underscore_format_to_be_more_<wbr>legible<br></div><div><div><br></div><div>  Peter<br></div></div></div></div>