| www.delorie.com/archives/browse.cgi | search | 
| 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
| webmaster | delorie software privacy | 
| Copyright 2019 by DJ Delorie | Updated Jul 2019 |