On Tue, 14 Mar 2000, Giorgos Keramidas wrote:

> On Mon, Mar 13, 2000 at 05:28:47PM +1100, Bruce Evans wrote:
> ...
> > #define isschar(type)       (!isfloat(type) && issigned(type) && sizeof(type) == 1)

> This is marvellous in it's simplicity of interface.
> 
> Yet, using sizeof(char) and assuming that it's going to be 1, strikes me
> like a dangerous thing to do.  I have never heard of machines where this

It is sure to be 1 (the C standard requires this).  The problem is
going in the opposite direction -- sizeof(long) may also be 1.
sizeof(signed char) == sizeof(long) doesn't imply that SCHAR_MAX ==
LONG_MAX, so the macros may give the wrong result for:

    typedef long foo_t;
    ...
    assert(maxof(foo_t) == LONG_MAX);

Bruce



To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to