Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Mar 2000 17:28:47 +1100 (EST)
From:      Bruce Evans <bde@zeta.org.au>
To:        John Polstra <jdp@polstra.com>
Cc:        paul@originative.co.uk, current@FreeBSD.ORG
Subject:   Re: MAX_UID ?
Message-ID:  <Pine.BSF.4.21.0003131708430.931-100000@alphplex.bde.org>
In-Reply-To: <200003130145.RAA51429@vashon.polstra.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 12 Mar 2000, John Polstra wrote:

> Sheesh, criticism isn't enough?  Now it has to be constructive too? ;-)
> 
> I guess it could go into <machine/limits.h> in the
> "!defined(_ANSI_SOURCE)" section.  Bruce might have a better idea.

This is the same as putting it in <limits.h> in the
"!defined(_ANSI_SOURCE)" section.  Anyway, the names should be FOO_MAX,
not MAX_FOO.

In C99, there are about 50 *_MAX and *_MIN values defined in <stdint.h>
for Standard C types alone.

I would prefer standard maxof() and minof() interfaces that work on
any arithmetic type.  These can almost be written in portable C, at
least in C89 where types are restricted to char, signed char, ...,
long double:

#define isfloat(type)	((type)0.5 != 0)
#define issigned(type)	((type)-1 < 0)
#define isschar(type)	(!isfloat(type) && issigned(type) && sizeof(type) == 1)
#define isuchar(type)	(!isfloat(type) && !issigned(type) && sizeof(type) == 1)
...
#define maxof(type)	((type)(isschar(type) ? SCHAR_MAX :
				isuchar(type) ? UCHAR_MAX ...))

Bruce



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0003131708430.931-100000>