delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2002/12/01/07:51:07

Sender: rich AT phekda DOT freeserve DOT co DOT uk
Message-ID: <3DEA05B4.B057991@phekda.freeserve.co.uk>
Date: Sun, 01 Dec 2002 12:51:00 +0000
From: Richard Dawe <rich AT phekda DOT freeserve DOT co DOT uk>
X-Mailer: Mozilla 4.77 [en] (X11; U; Linux 2.2.23 i586)
X-Accept-Language: de,fr
MIME-Version: 1.0
To: djgpp-workers AT delorie DOT com
Subject: Re: printf and the 'hh' conversion specifier (C99) [PATCH]
References: <200212011005 DOT gB1A5Cw22958 AT speedy DOT ludd DOT luth DOT se>
Reply-To: djgpp-workers AT delorie DOT com

Hello.

ams AT ludd DOT luth DOT se wrote:
> 
> According to Eli Zaretskii:
> > On Sat, 30 Nov 2002, Richard Dawe wrote:
> > > This is shorter than a short - a char. The only change that concerns
> > > me is:
> > >
> > >     ARG(int);
> > >
> > > switched to:
> > >
> > >     ARG(signed);
> > >
> > > I'm pretty sure this is equivalent.
> >
> > Yes, I think so, since our `int' is a signed data type.
> 
> But why is the change necessary then? Isn't is better to really
> specify the type as explicit as possible? (Like "signed int" in this
> case.)

The change is necessary because "ARG(basetype)" now includes "(basetype char)"
in the expansion and "signed int char" is not a valid type. Previously
"ARG(basetype)" only had integer typecasts in the expansion.

Switching from "ARG(int)" to "ARG(signed)" seemed like the best way (read:
easiest way) of supporting chars in the existing code.

Bye, Rich =]

-- 
Richard Dawe [ http://www.phekda.freeserve.co.uk/richdawe/ ]

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019