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: Keith Thompson Newsgroups: comp.lang.c Subject: Re: Top 10 most common hard skills listed on resumes... Date: Mon, 09 Sep 2024 16:53:12 -0700 Organization: None to speak of Lines: 48 Message-ID: <87mskg1j13.fsf@nosuchdomain.example.com> References: <875xrkxlgo.fsf@bsb.me.uk> <87o75bwlp8.fsf@bsb.me.uk> <871q27weeh.fsf@bsb.me.uk> <20240829083200.195@kylheku.com> <87v7zjuyd8.fsf@bsb.me.uk> <20240829084851.962@kylheku.com> <87mskvuxe9.fsf@bsb.me.uk> <20240908115827.00007521@yahoo.com> <87zfoikve1.fsf@bsb.me.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Date: Tue, 10 Sep 2024 01:53:13 +0200 (CEST) Injection-Info: dont-email.me; posting-host="29df7bbfeaa4d6ddeb7fdca1349b4e93"; logging-data="2700065"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/+Vo9AFv4n01zljSitD1e2" User-Agent: Gnus/5.13 (Gnus v5.13) Cancel-Lock: sha1:0FTm05tbWHpUwdW8VWrQeUc+6uk= sha1:7S4/mEqe1eEhNSInb6mcy1U1c8w= Bytes: 3159 Bart writes: > On 08/09/2024 17:44, Bart wrote: >> On 08/09/2024 16:39, Ben Bacarisse wrote: >>> Bart writes: >>> >>>> In language like C, the LHS of an assignment is one of four categories: >>>> >>>>    A = Y;         // name >>>>    *X = Y;        // pointer >>>>    X[i] = Y;      // index >>>>    X.m = Y;       // member select >>> >>> I can think of three others.  There may be more. >> OK, so what are they? > > TM: >>Yes, very good. I count four or five, depending on what > differences count as different. > > I guess nobody is going to say what those extra categories are, are they? The LHS of an assignment must be a modifiable lvalue. Searching for the word "lvalue" in the standard's section on expressions yields several forms not listed above: - A parenthesized lvalue: (A) = Y; - A generic selection whose result expression is an lvalue: _Generic(0, int: A) = Y; Not sure why you'd do this. - X->m, where X is a pointer (you might think of that as the same category as X.m, but the standard doesn't define the -> operator in terms of the . operator) - A compound literal: int n; (int){n} = 42; This assigns a value to a temporary object which is immediately discarded. I can't think of a valid use for this. [...] -- Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com void Void(void) { Void(); } /* The recursive call of the void */