Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <87wmq88d45.fsf@nosuchdomain.example.com>
Deutsch   English   Français   Italiano  
<87wmq88d45.fsf@nosuchdomain.example.com>

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

Path: ...!2.eu.feeder.erje.net!feeder.erje.net!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: Word For Today: =?utf-8?Q?=E2=80=9CUglification=E2=80=9D?=
Date: Mon, 11 Mar 2024 18:15:06 -0700
Organization: None to speak of
Lines: 43
Message-ID: <87wmq88d45.fsf@nosuchdomain.example.com>
References: <uso6or$3t3jn$3@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Injection-Info: dont-email.me; posting-host="de8f53c78bf32f77c14d770a36ea4d62";
	logging-data="4123696"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX18DEp0gEKTDgJfw0kc3Dhg5"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
Cancel-Lock: sha1:xLWbMNrLJWSNpR+p/EmXr3UYUZ0=
	sha1:S6MUPxOHdwCEHQ5rBG4ZByQfTQY=
Bytes: 2719

Lawrence D'Oliveiro <ldo@nz.invalid> writes:
> From /usr/include/«arch»/bits/select.h on my Debian system:
>
>     #define __FD_ZERO(s) \
>       do {									      \
>         unsigned int __i;							      \
>         fd_set *__arr = (s);						      \
>         for (__i = 0; __i < sizeof (fd_set) / sizeof (__fd_mask); ++__i)	      \
>           __FDS_BITS (__arr)[__i] = 0;					      \
>       } while (0)
>
> Note how this macro brings the entire expression for “s” into the
> scope containing those temporary “__i” and “__arr” variables. You just
> better hope they won’t clash.
>
> I think there is a clause in the C spec that says names beginning with
> underscores (“uglified” names, I think they’re called) are reserved
> for library implementors or something. But what happens if one library
> implementation depends on another? What keeps the choices of names
> from clashing in that situation? Just luck, I guess.

N1570 7.1.3:

    All identifiers that begin with an underscore and either an
    uppercase letter or another underscore are always reserved for any
    use.

    All identifiers that begin with an underscore are always reserved
    for use as identifiers with file scope in both the ordinary and tag
    name spaces.

I've never heard them call "uglified", though I suppose it's somewhat apt.

If the standard library includes code from two or more different
implementers, all implementers have a very strong interest in avoiding
any clashes.  I don't see a real problem here.

[...]

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
Working, but not speaking, for Medtronic
void Void(void) { Void(); } /* The recursive call of the void */