I don't like <i>any</i> of those MIN macros, and that question irritated me. Until C overhauls its macro system, the only good MIN macro is the kind that's actually a function. A good compiler will inline that for you anyway, probably, and most compilers let you declare functions inline in C.