digitalmars.D.bugs - [Issue 905] New: printf strangeness
- d-bugmail puremagic.com (38/38) Jan 29 2007 http://d.puremagic.com/issues/show_bug.cgi?id=905
- Frank Benoit (keinfarbton) (4/9) Jan 29 2007 Can you try this?
- d-bugmail puremagic.com (9/9) Jan 29 2007 http://d.puremagic.com/issues/show_bug.cgi?id=905
- d-bugmail puremagic.com (5/5) Jan 29 2007 http://d.puremagic.com/issues/show_bug.cgi?id=905
- d-bugmail puremagic.com (4/4) Jan 30 2007 http://d.puremagic.com/issues/show_bug.cgi?id=905
- Derek Parnell (6/14) Jan 30 2007 Damn! You'd think that Walter would "get it" by now.
http://d.puremagic.com/issues/show_bug.cgi?id=905 Summary: printf strangeness Product: D Version: 1.002 Platform: PC OS/Version: Windows Status: NEW Severity: normal Priority: P2 Component: DMD AssignedTo: bugzilla digitalmars.com ReportedBy: someanon yahoo.com $ cat pp.d int main(char[][] args) { int i; ulong addr; for (i = 0; i < 10; i++) { addr = cast(ulong)(&i) + i; addr = ((addr + 3) >> 2) << 2; printf("%d %d %d \n", i, addr, i); } return 0; } $ dmd.exe pp.d g:\project\dmd\bin\..\..\dm\bin\link.exe pp,,,user32+kernel32/noi; $ ./pp.exe 0 1244976 0 1 1244980 0 2 1244980 0 3 1244980 0 4 1244980 0 5 1244984 0 6 1244984 0 7 1244984 0 8 1244984 0 9 1244988 0 (Note the 3rd column, all 0!) --
Jan 29 2007
for (i = 0; i < 10; i++) { addr = cast(ulong)(&i) + i; addr = ((addr + 3) >> 2) << 2; printf("%d %d %d \n", i, addr, i); }Can you try this? printf("%d %lld %d \n", i, addr, i); the 'll' tells printf about the 'long' type. if you want to print a pointer type, use %p.
Jan 29 2007
http://d.puremagic.com/issues/show_bug.cgi?id=905 bugzilla digitalmars.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID Not a bug, a ulong needs to be printed with %llu, not %d. --
Jan 29 2007
http://d.puremagic.com/issues/show_bug.cgi?id=905 In general, you probably shouldn't be using printf unless there's a strong need for it. Use the more typesafe functionality provided by phobos with writef. --
Jan 29 2007
http://d.puremagic.com/issues/show_bug.cgi?id=905 "Hello World" from DMD 1.0 uses printf. We'll be stuck with it for ages. --
Jan 30 2007
On Tue, 30 Jan 2007 08:39:43 +0000 (UTC), d-bugmail puremagic.com wrote:http://d.puremagic.com/issues/show_bug.cgi?id=905 "Hello World" from DMD 1.0 uses printf. We'll be stuck with it for ages.Damn! You'd think that Walter would "get it" by now. Repeat after me, "D is not C", "D is not C", "D is not C", ... <G> Sorry Walter, just had to give you another ribbing about this D-wart. -- Derek Parnell
Jan 30 2007