Thread (18 messages) flat view 18 messages, 6 authors, 2016-06-15

Re: [PATCH] http: fix some printf format warnings on 32-bit builds

From: Ramsay Jones <hidden>
Date: 2016-06-15 23:07:14


On 12/11/15 05:27, Torsten Bögershausen wrote:
quoted
Ah. OK, so %ld for long and %lld for long long, I suppose.
Only if you have a system that's support it.

Linux does, Windows not.
Sure, but I was speculating specifically about Eric's mac (which I
have no experience with).
quoted
Hmm, not that it matters, but I wonder what the PRId64 macro is. ;-)
It's "I64d" for Windows, and "lld" for all Gnu based systems and others,
[On Gnu systems, I believe it is %lld on 32-bit and %ld on 64-bit.]

Again, I was commenting on Eric's mac, which _seems_ to allow
the use of both %ld and %lld when printing 64-bit integers, so
which does it choose for PRId64 ...
When you do printf("%lld %ld", long_long_var, long_var),
the "printf runtime" under Windows will treat "%lld" as "%ld", and print
the lower part of long_long_var.
And will not pull a long long from stack, but a long, resulting i all kinds of confusion

So whenever a long long is printed, I can warmly recommend to use

PRId64
Indeed.

ATB,
Ramsay Jones
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help