Deutsch English Français Italiano |
<v2vn11$3ffl2$2@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!weretis.net!feeder9.news.weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: David Brown <david.brown@hesbynett.no> Newsgroups: comp.lang.c Subject: Re: errno (was Re: C23 thoughts and opinions - why so conservative?) Date: Sun, 26 May 2024 18:12:17 +0200 Organization: A noiseless patient Spider Lines: 38 Message-ID: <v2vn11$3ffl2$2@dont-email.me> References: <v2l828$18v7f$1@dont-email.me> <20240523171911.00002f5a@yahoo.com> <v2o7re$1tlge$1@dont-email.me> <20240524003424.0000590a@yahoo.com> <v2qddg$2d33b$1@dont-email.me> <v2rc19$2i5ih$5@dont-email.me> <v2t174$2ue9j$1@dont-email.me> <875xv11mnb.fsf@nosuchdomain.example.com> <v2vgb9$3eaba$2@dont-email.me> <v2vi4t$3en8h$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Sun, 26 May 2024 18:12:18 +0200 (CEST) Injection-Info: dont-email.me; posting-host="75f63f5864dc091ec43360d736bfcccd"; logging-data="3653282"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19wOSwuzKCM/Kwv47HJuupv/zIHmC3pA34=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:PbS5S8kvN1x5vY8TldZGLFcSL0A= Content-Language: en-GB In-Reply-To: <v2vi4t$3en8h$1@dont-email.me> Bytes: 2592 On 26/05/2024 16:48, BGB wrote: > On 5/26/2024 9:18 AM, David Brown wrote: >> On 26/05/2024 01:45, Keith Thompson wrote: >>> David Brown <david.brown@hesbynett.no> writes: >>> [...] >>>> The normal way for multi-threaded systems is to implement it as a >>>> macro. It might be, for example : >>>> >>>> #define errno __thread_data->_errno >>>> >>>> or >>>> >>>> #define errno *errno() >>> >>> Both of those need more parentheses -- and I'm unconfortable using the >>> same identifier for the macro and the function. >>> >> >> The second example was from the footnote in the C standard's section >> on <errno.h>, so it can't be /that/ bad! >> >> But I agree with your discomfort. >> > > I would expect it to immediately explode, because AFAIK the usual > preprocessor behavior is to keep expanding macros in a line until there > is nothing left to expand. > > Well, granted, it is possible I could have misinterpreted how it was > supposed to work and had never noticed... > > I think you did misinterpret. Macros in C are not recursive. That stops them exploding, but also means there's a lot you can't do with the preprocessor.