Messages in this thread |  | | Date | Fri, 6 Jul 2001 00:10:29 +0200 | From | "J . A . Magallon" <> | Subject | Re: linux/macros.h(new) and linux/list.h(mod) ... |
| |
On 20010705 Davide Libenzi wrote: > >On 05-Jul-2001 David Woodhouse wrote: >> >> davidel@xmailserver.org said: >>> This patch add a new linux/macros.h that is supposed to host utility >>> macros that otherwise developers are forced to define in their files. >>> This version contain only min(), max() and abs(). >> >> Consider min(x++,y++). Try: >> >>#define min(x,y) ({ typeof((x)) _x = (x); typeof((y)) _y = (y); (_x>_y)?_y:_x; >>#}) >>#define max(x,y) ({ typeof((x)) _x = (x); typeof((y)) _y = (y); (_x>_y)?_x:_y; >>#}) > >Yep, it's better.
And there could be others also usefull:
#define ztst(x,y) (x ?: y) // `x' if that is nonzero; otherwise, of `y'
If g++ extensions worked in plain C, you just could write: #define min(x,y) (x <? y) #define max(x,y) (x >? y)
-- J.A. Magallon # Let the source be with you... mailto:jamagallon@able.es Mandrake Linux release 8.1 (Cooker) for i586 Linux werewolf 2.4.6-ac1 #2 SMP Thu Jul 5 01:15:49 CEST 2001 i686 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |