Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
06/30/07 00:46
Read: times


 
#141359 - Problem
Responding to: ???'s previous message
Andy Peters said:
use parentheses liberally

I choose this one section from your post to illustrate a counter-example.

If you always "use parentheses liberally" then what happens is that, over time, you begin to forget the rules of operator precedence. I don't mean on operators like + and * (the rules of which are drilled very deep into us), but rather like:

if((a & 0x01) && (b & 0x80)) { ... }
Do you know whether the inner parentheses are necessary? Or have you forgotten whether & or && has higher precedence? What if you come across the code:

if(a & 0x01 && b & 0x80) { ... }
Is this a bug, or is it ok? If you always "use parentheses liberally" then you tend to have to reach for your programming reference to look it up. If this happens only occasionally, then that's ok, but if it happens all the time (like when you're maintaining a "foreign" codebase), then you become bogged down and unproductive.

So be careful how much you "dumb down" your coding, because there's a point at which it starts to "dumb" you down.

List of 36 messages in thread
TopicAuthorDate
Mini quiz for Friday            01/01/70 00:00      
   a classic            01/01/70 00:00      
   Non kosher C            01/01/70 00:00      
      Please Explain            01/01/70 00:00      
         The reason            01/01/70 00:00      
            The real reason???            01/01/70 00:00      
               welcome to the club            01/01/70 00:00      
            Worse than "implementation dependent"            01/01/70 00:00      
               Can you clarify this point?            01/01/70 00:00      
                  splint gives a (very) detailed warning:            01/01/70 00:00      
                     Interesting ...            01/01/70 00:00      
                        Sequence point            01/01/70 00:00      
   Lesson complete            01/01/70 00:00      
      The weird part            01/01/70 00:00      
      There's a fine line            01/01/70 00:00      
         Problem            01/01/70 00:00      
            operator precedence            01/01/70 00:00      
               I second the motion            01/01/70 00:00      
                  As I said            01/01/70 00:00      
                     re: As I said            01/01/70 00:00      
                        Productivity?            01/01/70 00:00      
                           wrong comment            01/01/70 00:00      
                           re: Productivity            01/01/70 00:00      
                        that's IT            01/01/70 00:00      
                           Then again ...            01/01/70 00:00      
                              OK, is this better ?            01/01/70 00:00      
                                 12 year olds are smarter            01/01/70 00:00      
                                    Sorry but            01/01/70 00:00      
                                       Order of operations            01/01/70 00:00      
                                       I know            01/01/70 00:00      
                                    How about ...            01/01/70 00:00      
                                       Wrong?            01/01/70 00:00      
                                          point proven            01/01/70 00:00      
         Real Work vs. Fooling Around            01/01/70 00:00      
            I got caught out recently            01/01/70 00:00      
               re: I got caught out recently            01/01/70 00:00      

Back to Subject List