Sujet : Re: Suggested method for returning a string from a C program?
De : Keith.S.Thompson+u (at) *nospam* gmail.com (Keith Thompson)
Groupes : comp.lang.cDate : 20. Mar 2025, 20:28:27
Autres entêtes
Organisation : None to speak of
Message-ID : <87r02rsdr8.fsf@nosuchdomain.example.com>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
User-Agent : Gnus/5.13 (Gnus v5.13)
Michael S <
already5chosen@yahoo.com> writes:
On Thu, 20 Mar 2025 15:16:05 -0000 (UTC)
Muttley@DastardlyHQ.org wrote:
On Thu, 20 Mar 2025 16:59:14 +0200
Michael S <already5chosen@yahoo.com> wibbled:
On Thu, 20 Mar 2025 14:50:25 -0000 (UTC)
Muttley@DastardlyHQ.org wrote:
What makes you think they're macros?
>
PRIu64 and PRId64 are macros. They are ugly.
Never even heard of them. Looking them up I can't see much use for
them frankly except if you're starting out on an unknown system and
can't find out the info any other way which would be ... odd.
>
Then how exactly do you printf value of type int64_t in a code that
expected to pass [gcc] compilation with no warnings on two platforms,
one of which is 64-bit Unix/Linux and another is just about anything
else?
#include <stdint.h>
#include <stdio.h>
int main(void) {
int64_t n = 42;
printf("%ju\n", (intmax_t)n);
}
The alternative is:
#include <stdint.h>
#include <inttypes.h>
#include <stdio.h>
int main(void) {
int64_t n = 42;
printf("%" PRId64 "\n", n);
}
I was able to write the first from memory. I had to consult the
standard for the second, though I'm sure I'd be able to remember it if I
used it more often.
-- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.comvoid Void(void) { Void(); } /* The recursive call of the void */