[MPlayer-dev-eng] Re: [PATCH] Re: min() and max() macro definitions
    adland 
    adland123 at yahoo.com
       
    Sun Mar 20 07:56:21 CET 2005
    
    
  
link with more details about side effects
http://ou800doc.caldera.com/cgi-bin/info2html?(cpp.info)Macro%20Pitfalls〈=en
default definition
 #define MIN(X, Y)  ((X) < (Y) ? (X) : (Y))
Learned that this macro as defined by default is unsafe.
possible side effect which comes from using a function for arguments versus 
variables.
However there were no visible examples of this kind of usage in the current
 source code with a quick check.
there is a possible work around for GNU C compilers mentioned to avoid side
 effect
      #define MIN(X, Y)                     \
      ({ typeof (X) __x = (X), __y = (Y);   \
         (__x < __y) ? __x : __y; })
otherwise they say to make the programmers use temp variables storing 
the calculated value of function and not put function calls directly in the macro
is there another issue ?
    
    
More information about the MPlayer-dev-eng
mailing list