Date: Mon, 14 May 2001 21:38:14 +1000 (EST) From: Bruce Evans <bde@zeta.org.au> To: Dima Dorfman <dima@unixfreak.org> Cc: hackers@freebsd.org, bde@freebsd.org Subject: Re: MIN()/MAX() definitions in sys/param.h Message-ID: <Pine.BSF.4.21.0105142111400.29267-100000@besplex.bde.org> In-Reply-To: <20010514071731.1D9F93E28@bazooka.unixfreak.org>
index | next in thread | previous in thread | raw e-mail
On Mon, 14 May 2001, Dima Dorfman wrote:
> Is there a reason the definitions of the MIN() and MAX() macros in
> sys/param.h are under an '#ifndef _KERNEL'? Quite a few files in the
It is to inhibit use of these macros. The {i,,l,lu,q}{max,min} inline
functions are supposed to be used instead.
Both of these interfaces are problematic. MIN/MAX can not be implemented
to be "safe" macros in Standard C since they need to evaluate their
args more than once. Their upper case names indicate that they are
unsafe. The {i,,l,lu,q}{max,min} functions are not type-generic, so
they are difficult to use correctly for args whose type is typedef'ed.
> kernel define these (well, at least MIN) themselves, so it would seem
> to make sense to define them globally in sys/param.h for the kernel as
> well. Any reason this isn't already done this way, or should I come
> up with a patch to fix that?
This is a bug in these files.
Bruce
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0105142111400.29267-100000>
