Path: ...!weretis.net!feeder9.news.weretis.net!news.quux.org!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: bart Newsgroups: comp.lang.c Subject: Re: Loops (was Re: do { quit; } else { }) Date: Thu, 24 Apr 2025 09:26:23 +0100 Organization: A noiseless patient Spider Lines: 34 Message-ID: References: <87ecxmv4t4.fsf@nosuchdomain.example.com> <20250420200823.908@kylheku.com> <20250421113640.839@kylheku.com> <20250421125957.29@kylheku.com> <20250422103555.547@kylheku.com> <20250423113224.711@kylheku.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Thu, 24 Apr 2025 10:26:23 +0200 (CEST) Injection-Info: dont-email.me; posting-host="a15eea173108e872714458e11e12d2b4"; logging-data="1222614"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+eEUoE0cBv3OrDdgkYh3E0" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:qJE8wODWFp9xvuuxOYBy1tfTAyY= In-Reply-To: Content-Language: en-GB Bytes: 3048 On 24/04/2025 08:40, Muttley@DastardlyHQ.org wrote: > On Wed, 23 Apr 2025 18:43:33 -0000 (UTC) > Kaz Kylheku <643-408-1753@kylheku.com> wibbled: >> On 2025-04-23, bart wrote: >>> On 23/04/2025 16:31, David Brown wrote: >>>> On 22/04/2025 22:03, bart wrote: >>> >>>> Too few levels of functions and/or macros (there is no semantic >>>> difference between macros and functions in this matter) >>> >>> There is a great deal of difference. Functions tend to be well-formed in >>> their inputs and outputs. >>> >>> Macros take some abitrary blocks of syntax and return another arbitrary >>> block of syntax: >>> >>> #define INDEX(a, b, y) a y b >>> INDEX(a, i, [) ]; >> >> While that's terrible, I've never seen anything like it in the wild. > > He loves coming up with unrealistic code examples that no decent programmer > would ever write then points and says look how bad macros must be. Using that > approach you can easily come up with highly contorted code that no one can read > as the Obfuscated C contest proves. > And you do like totally ignoring the context. This was an example of how macros work compared with how functions work. Functions return a value of some type; macros yield a bunch of lexical tokens.