Deutsch   English   Français   Italiano  
<87r02rsdr8.fsf@nosuchdomain.example.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: Keith Thompson <Keith.S.Thompson+u@gmail.com>
Newsgroups: comp.lang.c
Subject: Re: Suggested method for returning a string from a C program?
Date: Thu, 20 Mar 2025 12:28:27 -0700
Organization: None to speak of
Lines: 47
Message-ID: <87r02rsdr8.fsf@nosuchdomain.example.com>
References: <vrd77d$3nvtf$2@dont-email.me> <868qp1ra5f.fsf@linuxsc.com>
	<vrdhok$47cb$2@dont-email.me> <20250319115550.0000676f@yahoo.com>
	<vreuj1$1asii$4@dont-email.me> <vreve4$19klp$2@dont-email.me>
	<20250319201903.00005452@yahoo.com> <86r02roqdq.fsf@linuxsc.com>
	<vrh1br$35029$2@dont-email.me> <LRUCP.2$541.0@fx47.iad>
	<vrh71t$3be42$1@dont-email.me> <vrh9vh$3ev9o$1@dont-email.me>
	<20250320165914.000030eb@yahoo.com> <vrhbfl$3g9qg$1@dont-email.me>
	<20250320172922.00002a08@yahoo.com>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Date: Thu, 20 Mar 2025 20:28:28 +0100 (CET)
Injection-Info: dont-email.me; posting-host="2f20008cbcfa55ae60494be276e0bfaa";
	logging-data="4043012"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/F1Y8w2SuLi1sIblK4jz2R"
User-Agent: Gnus/5.13 (Gnus v5.13)
Cancel-Lock: sha1:T+3hIDBWbRUQTIZsoav5Yl3UlDg=
	sha1:kMGEaYmy365hnB5RYtfQjQatJcU=
Bytes: 2842

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.com
void Void(void) { Void(); } /* The recursive call of the void */