www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2014/02/20/12:45:26

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
X-Received: by 10.66.65.109 with SMTP id w13mr1177480pas.21.1392917244564;
Thu, 20 Feb 2014 09:27:24 -0800 (PST)
X-Received: by 10.50.142.66 with SMTP id ru2mr193387igb.9.1392917244013; Thu,
20 Feb 2014 09:27:24 -0800 (PST)
Newsgroups: comp.os.msdos.djgpp
Date: Thu, 20 Feb 2014 09:27:23 -0800 (PST)
In-Reply-To: <5305FF1A.4010804@Damon-Family.org>
Complaints-To: groups-abuse AT google DOT com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=118.168.202.186;
posting-account=WqoaTgoAAABn_56zOqG1zk1m0UvtHqAO
NNTP-Posting-Host: 118.168.202.186
References: <61118811-548e-4c11-8d04-e73de3c7da86 AT googlegroups DOT com> <5305FF1A DOT 4010804 AT Damon-Family DOT org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <913a8783-5caf-441e-a502-12d2ac4d782f@googlegroups.com>
Subject: Re: DJGPP gcc 4.7.3 and 4.8.2 work inconsistently on type uint32_t.
From: Andrew Wu <andrewwu DOT tw AT gmail DOT com>
Injection-Date: Thu, 20 Feb 2014 17:27:24 +0000
X-Received-Bytes: 2438
X-Received-Body-CRC: 2085558268
Bytes: 2693
Lines: 42
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id s1KHj2Ws001452
Reply-To: djgpp AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

Richard Damon於 2014年2月20日星期四UTC+8下午9時11分54秒寫道:
> 
> The problem is that by the standard, %x requires a parameter of type
> 
> (unsigned) int, and uint32_t  may or may not be of that type. Printing a
> 
> uint32_t with a %x format is really a BUG in the program (or at the very
> 
> minimum, a dependance on unpromised implementation defined behavior,
> 
> which is really just a polite name for bug.
> 
> 
> 
> I will admit that it is a common error for people who grew up on 32 bit
> 
> machines, as for them int has always been 32 bits, so things always just
> 
> worked (even if performing technically undefined behavior if the
> 
> implementation decided that uint32_t should be a unsigned long (which
> 
> also is 32 bits on most 32 bit machines).
> 
> 
> 
> If you want to print out a uint32_t, you should include <inttypes.h> and
> 
> use the macro PRIx32as in
> 
> 
> 
> printf("Hello %" PRIx32 " \n", x);
> 
> 
> 
> -- 
> 
> Richard Damon

Ok, I understood. I just wanted to make sure it is not a bug. :D

- Raw text -


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