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: Tim Rentsch Newsgroups: comp.lang.c Subject: Re: do { quit; } else { } Date: Tue, 13 May 2025 18:15:17 -0700 Organization: A noiseless patient Spider Lines: 25 Message-ID: <86ikm4vvq2.fsf@linuxsc.com> References: <86iknecjz8.fsf@linuxsc.com> <86o6x5at05.fsf@linuxsc.com> <20250409170901.947@kylheku.com> <87wmbs45oa.fsf@nosuchdomain.example.com> <87semf4pw5.fsf@nosuchdomain.example.com> <87zfgn344c.fsf@nosuchdomain.example.com> <20250411142636.00006c00@yahoo.com> <20250411102119.431@kylheku.com> <20250413204521.0000238e@yahoo.com> <861psuziq2.fsf@linuxsc.com> <87ecwt37b9.fsf@nosuchdomain.example.com> <1000ne2$2323t$1@dont-email.me> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Date: Wed, 14 May 2025 03:15:18 +0200 (CEST) Injection-Info: dont-email.me; posting-host="adcc0210618ce5c814d2d263cc71a7bf"; logging-data="2246136"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18LMRycWeBzlECnkGlAtM7MjPPS+dPDMks=" User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.4 (gnu/linux) Cancel-Lock: sha1:UWVkNXKwn/zgYNYKYWO+QqfQM44= sha1:+OPwoMdwDrzmVfPV7NwfIWgfmIM= Bytes: 2781 James Kuyper writes: > On 5/13/25 05:40, David Brown wrote: > >> On 12/05/2025 22:25, Keith Thompson wrote: > > ... > >>> I think that a lot of C programmers misunderstand what "compatible >>> types" means. Many seem to think that two types are compatible if >>> they have the same representation and can be assigned without a cast. >> >> Yes. Basically, most C programmers are not particularly aware of the >> technical definitions of some of the terms in C standards where they >> differ from common usage. The word "compatible" in English means that >> the things in question can work together or fit together. > > That's pretty much what it means in C. Two C types are compatible > in C if the C standard *guarantees* that they can work together - > that you can use the types interchangeably. [...] This description isn't exactly right, because the relationship of being compatible is not an equivalence relation. It is possible that given types A, B, and C, A is compatible with B, and B is compatible with C, but A is not compatible with C.