| Deutsch English Français Italiano |
|
<86ikn79mlq.fsf@linuxsc.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: Tim Rentsch <tr.17687@z991.linuxsc.com> Newsgroups: comp.lang.c Subject: Re: "A diagram of C23 basic types" Date: Mon, 14 Apr 2025 01:24:49 -0700 Organization: A noiseless patient Spider Lines: 45 Message-ID: <86ikn79mlq.fsf@linuxsc.com> References: <87y0wjaysg.fsf@gmail.com> <vsj1m8$1f8h2$1@dont-email.me> <vsrqsh$qhuu$2@solani.org> <vt38i9$29prg$1@dont-email.me> <87h62ys4w5.fsf@nosuchdomain.example.com> <vt488v$35hh3$1@dont-email.me> <vt4n3d$3e8hi$1@dont-email.me> <86ecy2c5o4.fsf@linuxsc.com> <87mscprhhe.fsf@nosuchdomain.example.com> <20250409105549.000037dd@yahoo.com> <86semhawhs.fsf@linuxsc.com> <20250410115004.00005276@yahoo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Date: Mon, 14 Apr 2025 10:24:51 +0200 (CEST) Injection-Info: dont-email.me; posting-host="94f07fe53fa8e4a0f6a79bf0296fa912"; logging-data="877446"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/R7uTzJrdcuEdTIxfyWLQwWrgvB9zsUQg=" User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux) Cancel-Lock: sha1:TVYVsa8OAa4oG6WR8dMnybG3tcA= sha1:dxuoXd9cL0HoCzV3mqvNo8RhYTQ= Bytes: 3590 Michael S <already5chosen@yahoo.com> writes: > On Wed, 09 Apr 2025 13:52:15 -0700 > Tim Rentsch <tr.17687@z991.linuxsc.com> wrote: > >> Michael S <already5chosen@yahoo.com> writes: [...distinction between hosted implementions and freestanding implementations...] >>> May be in some formal sense headers and library routines that are >>> mandatory for freestanding implementations belong to the same rank >>> as core language. But in practice there exists an obvious >>> difference. In the first case, name clashes are avoidable >>> (sometimes with toothless threat that they can happen in the >>> future) and in the second case they are unavoidable. >> >> It's hard for me to make sense sense of this comment. The only >> library routines that are required in standard C are those >> documented as part of a section for one of the standard headers. >> For freestanding implementations in particular, there are only >> two names (va_copy and va_end) that might correspond to library >> functions, and if they do then the names are reserved for that >> purpose. Do you mean to suggest that user code defining either >> va_copy or va_end as a symbol with external linkage is >> unavoidable? Any user code that does so could be summarily >> rejected by the implementation. It's hard to imagine anyone >> writing user code wanting to define either of those names as a >> symbol with external linkage. > > I merely wanted to say that it is pretty easy to write a legal, if > not necessarily sensible, code that uses variable named 'memcpy' > and function named 'size_t'. OTOH, you can't name you variable > 'break' or 'continue'. Or even 'bool', if you happen to use C23 > compiler. I sort of agree with you (even if in practice it isn't hard to avoid using identifiers like memcpy or size_t). I was confused because this problem doesn't have much to do with whether an implementation is freestanding or not. There are different kinds of identifiers, and the different kinds have different properties about where they may or may not be used. Do you really have a problem avoiding identifiers defined in this or that library header, either for all headers or just those headers required for freestanding implementations?