www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/05/15/14:56:32

From: Morten Welinder <terra AT diku DOT dk>
Date: Mon, 15 May 1995 18:52:59 +0200
To: pkoning AT chipcom DOT com
Cc: djgpp AT sun DOT soe DOT clarkson DOT edu
Subject: Re: BUG or what?! -- No

   I know C is a screwed up language, but this I just can't believe.  Where
   does it say that?  And if it does say that, does anyone know why?  I can't
   think of any reason in parsing or anywhere else that would justify
   such a braindamaged rule.

	paul

   >The C language requires you to have whitespace between a hex-number
   >ending in "e" and a subsequent "+" or "-".
   >
   >Morten

From the Gcc manual:

   * GNU C complains about program fragments such as `0x74ae-0x4000'
     which appear to be two hexadecimal constants separated by the minus
     operator.  Actually, this string is a single "preprocessing token".
     Each such token must correspond to one token in C.  Since this
     does not, GNU C prints an error message.  Although it may appear
     obvious that what is meant is an operator and two values, the ANSI
     C standard specifically requires that this be treated as erroneous.

     A "preprocessing token" is a "preprocessing number" if it begins
     with a digit and is followed by letters, underscores, digits,
     periods and `e+', `e-', `E+', or `E-' character sequences.

     To make the above program fragment valid, place whitespace in
     front of the minus sign.  This whitespace will end the
     preprocessing number.

- Raw text -


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