Path: csiph.com!eternal-september.org!feeder.eternal-september.org!nntp.eternal-september.org!.POSTED!not-for-mail From: Keith Thompson Newsgroups: comp.lang.c Subject: Re: Why is this happening? Date: Sun, 29 Mar 2026 13:57:41 -0700 Organization: None to speak of Lines: 25 Message-ID: <87mrzquzei.fsf@example.invalid> References: <10q5046$3ec1o$2@dont-email.me> <10q523v$3e865$1@dont-email.me> <10q7bug$7vod$1@dont-email.me> <87bjg8wrgl.fsf@example.invalid> <10q7kon$aibc$2@dont-email.me> <10q85s6$fe60$1@dont-email.me> <10q8e9o$igtv$1@dont-email.me> <10q8sg1$nocf$1@dont-email.me> <10q91bf$pms8$2@dont-email.me> <10qarlj$1c51m$3@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Date: Sun, 29 Mar 2026 20:57:42 +0000 (UTC) Injection-Info: dont-email.me; posting-host="1ddb92ea07dcf10ad5bdf45e81a7e5f2"; logging-data="2008312"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18OMlgok6gu3XsHaGKbEa0g" User-Agent: Gnus/5.13 (Gnus v5.13) Cancel-Lock: sha1:xcEcKqv0hbfnUdZaeS9zVLAjnxY= sha1:fYDKFBIiAoItFC/hYAecq7W5i0E= Xref: csiph.com comp.lang.c:397281 David Brown writes: > On 28/03/2026 17:58, Richard Harnden wrote: >> On 28/03/2026 15:35, David Brown wrote: >>> Well, underscore basically counts as a letter, so it's a valid >>> identifier just like "x1234" would be.  Sometimes people use >>> identifiers like that for specific purposes, like macro parameters. >> Isn't _UPPERCASE and __anything reserved for the implementation? > > Yes. > > And identifiers with _lowercase have implicit internal linkage (when > they would otherwise have had implicit external linkage). That's why > I wrote "underscore /basically/ counts as a letter" - to save > mentioning all the details. I don't believe that's correct. The language defines rules about which identifiers are reserved depending on how they're spelled, but I've never seen a rule that says the linkage of an identifier is affected by its spelling. (A compiler could take advantage of undefined behavior to do something weird, but I believe and hope that no compilers actually do so.) -- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com void Void(void) { Void(); } /* The recursive call of the void */