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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
06/22/07 19:54
Read: times


 
#141165 - Non kosher C
Responding to: ???'s previous message
Russ Cooper said:

x^=y^=x^=y;
x and y are both integer types of the same width.

What does this line of C code do, and how is it better than the more obvious method that's often used?


What does it do? It gives any decent compiler fits, that's what it does. Nevertheless, the default behavior of most C compilers is to generate code that swaps the values of x and y, without using a temporary variable.

This trick, from finite automata class if I recall correctly, is suitable for assembly language, but no C compiler is guaranteed to generate the code you think it will.



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