Deutsch   English   Français   Italiano  
<vt15l5$3e57a$1@paganini.bofh.team>

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

Path: ...!feeds.phibee-telecom.net!2.eu.feeder.erje.net!feeder.erje.net!newsfeed.bofh.team!paganini.bofh.team!not-for-mail
From: antispam@fricas.org (Waldek Hebisch)
Newsgroups: comp.lang.c
Subject: Re: "A diagram of C23 basic types"
Date: Mon, 7 Apr 2025 18:31:03 -0000 (UTC)
Organization: To protect and to server
Message-ID: <vt15l5$3e57a$1@paganini.bofh.team>
References: <87y0wjaysg.fsf@gmail.com> <vsj1m8$1f8h2$1@dont-email.me> <vsj2l9$1j0as$1@dont-email.me> <vsjef3$1u4nk$1@dont-email.me> <vsjg6t$20pdb$1@dont-email.me> <vsjjd1$23ukt$1@dont-email.me> <vsjkvb$25mtg$1@dont-email.me> <vsjlkq$230a5$2@dont-email.me> <vsjs5k$2bfc5$2@dont-email.me> <vsjvgu$2fpp1$1@dont-email.me> <20250402113624.693@kylheku.com> <86o6xdhorr.fsf@linuxsc.com> <vsn0dm$2al86$1@paganini.bofh.team> <87ikngd7jg.fsf@nosuchdomain.example.com>
Injection-Date: Mon, 7 Apr 2025 18:31:03 -0000 (UTC)
Injection-Info: paganini.bofh.team; logging-data="3609834"; posting-host="WwiNTD3IIceGeoS5hCc4+A.user.paganini.bofh.team"; mail-complaints-to="usenet@bofh.team"; posting-account="9dIQLXBM7WM9KzA+yjdR4A";
User-Agent: tin/2.6.2-20221225 ("Pittyvaich") (Linux/6.1.0-9-amd64 (x86_64))
X-Notice: Filtered by postfilter v. 0.9.3
Bytes: 2850
Lines: 35

Keith Thompson <Keith.S.Thompson+u@gmail.com> wrote:
> antispam@fricas.org (Waldek Hebisch) writes:
>> Tim Rentsch <tr.17687@z991.linuxsc.com> wrote:
> [...]
>>> Not always practical.  A good example is the type size_t.  If a
>>> function takes an argument of type size_t, then the symbol size_t
>>> should be defined, no matter which header the function is being
>>> declared in.
>>
>> Why?  One can use a type without a name for such type.
> 
> Convenience and existing practice.  Sure, an implementation of
> <string.h> could provide a declaration of memcpy() without making
> size_t visible, but what would be the point?

Cleanliness of definitions?  Consistency?  Fragment that you
replaced by [...] contained a proposal:

>>>> Every identifier should be declared in exactly one home header,
>>>> and no other header should provide that definition.

That would be pretty clean and consistent rule: if you need some
standard symbol, then you should include corresponding header.

Tim claimed that this in not practical.  Clearly C standard changed
previous practice about headers, so existing practice is _not_
a practical problem with adapting such proposal.  With current
standard and practice one frequently needs symbols from several
headers, so "convenience" is also not a practival problem with
such proposal.  People not interested in clean name space can
define private "all.h" which includes all standard C headers
and possibly other things that they need, so for them overhead
is close to zero.

-- 
                              Waldek Hebisch