Deutsch   English   Français   Italiano  
<100dscu$18b5s$1@dont-email.me>

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: Richard Heathfield <rjh@cpax.org.uk>
Newsgroups: comp.theory
Subject: Re: Overcoming the proof of undecidability of the Halting Problem by
 a simple example in C
Date: Mon, 19 May 2025 01:01:34 +0100
Organization: Fix this later
Lines: 48
Message-ID: <100dscu$18b5s$1@dont-email.me>
References: <1005jsk$3akrk$1@dont-email.me>
 <bc6f0f045212bdfb7f7d883426873a09e37789ea@i2pn2.org>
 <1005u6v$3cpt2$1@dont-email.me> <1005v0p$3b07v$1@dont-email.me>
 <10063u0$3dmiv$1@dont-email.me> <1006on8$3l9t7$1@dont-email.me>
 <1007kgq$3qb7l$9@dont-email.me> <1009lm9$b15q$1@dont-email.me>
 <100ceum$uvq0$1@dont-email.me> <87ecwl1s2p.fsf@bsb.me.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 19 May 2025 02:01:36 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="be58ce700b7a791d98bdef6cb205f490";
	logging-data="1322172"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1+bFuA7WWNvbeplQ06DX0HHHQBcEjmgPKZAc5YP0kDXIQ=="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:aDJz32qF6rMjbPIhNcp69rNG0KU=
In-Reply-To: <87ecwl1s2p.fsf@bsb.me.uk>
Content-Language: en-GB
Bytes: 2843

On 18/05/2025 23:18, Ben Bacarisse wrote:
> Richard Heathfield <rjh@cpax.org.uk> writes:
> ...
>> If they know C they should know that it's
>>   u32 HHH(void (*P)()), according to Halt7.c.
>>
>> It takes a pointer to a function that accepts no arguments and returns no
>> value.
> 
> Yes, but I am surprised that you are being so modern!!  You used to
> favour C90 and didn't really care for anything more recent.

I am just as surprised that you missed the distinction I was 
making, which was between these:

void HHH(void (*f)(void))
u32 HHH(void (*P)())

Empty parentheses had nothing to do with my point. On line 16 we 
find: typedef uint32_t u32;

uint32_t != void.

> Empty ()s in a declarator were made obsolete in C17 and made equivalent
> to (void) in C23.  Prior to C23 a parameter that is pointer to a
> function taking no arguments would have to have been written as
> 
>    u32 HHH(void (*P)(void))
> 
> and after C23 the (probable) intended meaning would have to be written
> as
> 
>    u32 HHH(void (*P)(...))

but not void HHH(void (*f)(void)), eh?

> (Caveat: I'm not properly up to date anymore and, this not being
> comp.lang.c, I may not be corrected by People Who Really Know.)

I have no doubt you're right about (), but that wasn't the point 
I was making.

-- 
Richard Heathfield
Email: rjh at cpax dot org dot uk
"Usenet is a strange place" - dmr 29 July 1999
Sig line 4 vacant - apply within