| Deutsch English Français Italiano |
|
<87bjxvqcv2.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!.POSTED!not-for-mail
From: Keith Thompson <Keith.S.Thompson+u@gmail.com>
Newsgroups: comp.lang.c
Subject: Re: question about linker
Date: Sun, 01 Dec 2024 14:04:17 -0800
Organization: None to speak of
Lines: 51
Message-ID: <87bjxvqcv2.fsf@nosuchdomain.example.com>
References: <vi54e9$3ie0o$1@dont-email.me> <vi6sb1$148h7$1@paganini.bofh.team>
<vi6uaj$3ve13$2@dont-email.me>
<87plmfu2ub.fsf@nosuchdomain.example.com>
<vi9jk4$gse4$1@dont-email.me> <vi9kng$gn4c$1@dont-email.me>
<87frnbt9jn.fsf@nosuchdomain.example.com>
<viaqh0$nm7q$1@dont-email.me>
<877c8nt255.fsf@nosuchdomain.example.com>
<viasv4$nm7q$2@dont-email.me> <vibr1l$vvjf$1@dont-email.me>
<vic73f$1205f$1@dont-email.me> <20241129142810.00007920@yahoo.com>
<vicfra$13nl4$1@dont-email.me> <20241129161517.000010b8@yahoo.com>
<vicque$15ium$2@dont-email.me> <vid110$16hte$1@dont-email.me>
<87mshhsrr0.fsf@nosuchdomain.example.com>
<vidd2a$18k9j$1@dont-email.me>
<8734j9sj0f.fsf@nosuchdomain.example.com>
<vihhkj$2er60$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Date: Sun, 01 Dec 2024 23:04:21 +0100 (CET)
Injection-Info: dont-email.me; posting-host="3f181db05453596f17a34ace05301cb8";
logging-data="2977014"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+ziZnwCAXhibJYsbBGkwo3"
User-Agent: Gnus/5.13 (Gnus v5.13)
Cancel-Lock: sha1:v9JLLImcBK8UJEkQ7kvG5NA79WQ=
sha1:k+osau3GcixUGkjRAZga6zymQDI=
Bytes: 3939
David Brown <david.brown@hesbynett.no> writes:
> On 30/11/2024 00:44, Keith Thompson wrote:
[...]
>> David apparently has a different definition of "totally different
>> types" than you do. Since the standard doesn't define that phrase, I
>> suggest not wasting time arguing about it.
>
> "int", "void" and "double" are totally different types in my
> view. "int", "pointer to int", "array of int", "function returning
> int" all have a relation that means I would not describe them as
> /totally/ different types - though I would obviously still call them
> /different/ types.
The following is not intended as a criticism. I think "totally
different types" was a throwaway phrase applying to a specific context,
and I have no problem with that. It refers to types that cannot be
combined in a single declaration. I don't think its a suitable term for
more general use (and I'm sure it wasn't intended to be). There might
be a clearer phrase, but I don't really think we need a term for it at
all (outside that one throwaway context).
If we needed a definition, we could refer to the discussion of "derived
types" in section 6.2.5 (Types) of the C standard.
And you explained it clearly enough when you first used it.
[...]
> A function definition - as typically written - is also a function
> declaration. So presumably you mean non-defining declaration here.
Yes.
> Some people have a style where they write forward declarations of all
> functions defined in a C file near the top of the file. I am not a
> fan of that myself - especially as over time, this redundant
> information is rarely kept fully in sync with the rest of the code.
> But it is definitely something you'll sometimes see in real-world C
> code. (You could argue that the code is then not "well-written" C,
> but that would be a very subjective opinion.)
Yes, that was an oversight on my part.
If someone wanted to ensure that all static functions defined in a
translation unit are declared near the top, there could be a separate
tool to generate, or at least check, the declarations. I'm not aware of
any such tool, which suggests there probably isn't much demand for it.
--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */