Warning: mysqli::__construct(): (HY000/1203): User howardkn already has more than 'max_user_connections' active connections in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\includes\artfuncs.php on line 21
Failed to connect to MySQL: (1203) User howardkn already has more than 'max_user_connections' active connections
Warning: mysqli::query(): Couldn't fetch mysqli in D:\Inetpub\vhosts\howardknight.net\al.howardknight.net\index.php on line 66
Article <vaqtms$55ns$1@dont-email.me>
Deutsch   English   Français   Italiano  
<vaqtms$55ns$1@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!3.eu.feeder.erje.net!feeder.erje.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Bart <bc@freeuk.com>
Newsgroups: comp.lang.c
Subject: Re: Top 10 most common hard skills listed on resumes...
Date: Thu, 29 Aug 2024 23:45:47 +0100
Organization: A noiseless patient Spider
Lines: 71
Message-ID: <vaqtms$55ns$1@dont-email.me>
References: <vab101$3er$1@reader1.panix.com> <vah4hr$2b9i8$5@dont-email.me>
 <vahngt$2dtm9$1@dont-email.me> <87r0abzcsj.fsf@bsb.me.uk>
 <vai1ec$2fns2$1@dont-email.me> <874j75zftu.fsf@bsb.me.uk>
 <valrj7$367a8$2@dont-email.me> <87mskwy9t1.fsf@bsb.me.uk>
 <vanq4h$3iieb$1@dont-email.me> <875xrkxlgo.fsf@bsb.me.uk>
 <vapitn$3u1ub$1@dont-email.me> <87o75bwlp8.fsf@bsb.me.uk>
 <vaps06$3vg8l$1@dont-email.me> <871q27weeh.fsf@bsb.me.uk>
 <20240829083200.195@kylheku.com> <87v7zjuyd8.fsf@bsb.me.uk>
 <20240829084851.962@kylheku.com> <87mskvuxe9.fsf@bsb.me.uk>
 <vaq9tu$1te8$1@dont-email.me> <87h6b39imm.fsf@nosuchdomain.example.com>
 <vaqp83$4jjo$1@dont-email.me> <878qwf9ec4.fsf@nosuchdomain.example.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 30 Aug 2024 00:45:48 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="174259085da7cb67cacc3eba8e8469e6";
	logging-data="169724"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/zA3dB1c6iIPfvECvdC/Fg"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:pwF00kzh45Vhx/WXT2q0zkQ2FPg=
In-Reply-To: <878qwf9ec4.fsf@nosuchdomain.example.com>
Content-Language: en-GB
Bytes: 4528

On 29/08/2024 23:03, Keith Thompson wrote:
> Bart <bc@freeuk.com> writes:
>> On 29/08/2024 21:30, Keith Thompson wrote:
>>> Bart <bc@freeuk.com> writes:
>>> [...]
>>>> So what exactly is different about the LHS and RHS here:
>>>>
>>>>      A = A;
>>> The RHS is evaluated to determine the current value stored in the
>>> object
>>> named A.  The LHS is evaluated to determine the object that's designated
>>> by the name A; its current value is irrelevant.
>>
>> Sure, but the same thing happens on both sides: one ends up performing
>> a Read via that Lvalue, and the other does a Write via that Lvalue.
> 
> The read is done by converting the lvalue to its value, which is not an
> lvalue.  Please read the discussion of "lvalue conversion" in the C
> standard.
> 
>>> In C terms, the RHS undergoes *lvalue conversion*, where an expression
>>> that's an lvalue is converted to the value stored in the designated
>>> object.  The LHS does not undergo lvalue conversion.
>>>
>>>> (In BLISS, doing the same thing requires 'A = .A' AIUI; while 'A = A'
>>>> is also valid, there is a hidden mismatch in indirection levels
>>>> between left and right. It is asymmetric while in C it is symmetric,
>>>> although seem to disagree on that latter point.)
>>> Because BLISS, unlike C, does not have implicit lvalue conversion;
>>> the
>>> prefix "." operator performs explicit lvalue conversion.  I presume the
>>> "." operator isn't specific to assignments.
>>
>> But it must have that conversion on the LHS, otherwise it's A's
>> address that is written to rather than its value, which doesn't make
>> sense. That's why I said it was asymmetric; the RHS needs an explicit
>> operator, the LHS doesn't.
> 
> No, the address isn't written.  The object is written.
> 
> The RHS evaluation determines the value currently stored in the object.
> The LHS evaluation does not.  That's the asymmetry.
> 
> In BLISS, the evaluation of the expression A determines the object that
> the name A designates.  In C, it can either do that *or* it can extract
> the value currently stored in that object.

So if C was to behave the same way as BLISS:

     int a, b, c;

     b = 23;           // sets b to 23
     a = *b;           // sets a to that 23 in b
     c = *a + *b;      // sets c to 46

     a = b;             // attempts to set a to b's address (&b)

You would say that this is now symmetric, but C normal C wasn't?

I get you...





.... not really! We'll just have to disagree. My comments are based on 
having implemented this stuff myriad times on multiple targets, but I 
must have obviously have been misunderstanding it all that time.

Opening a drawer A to put something in, is a totally different thing to 
opening the same drawer A to take something out; of course!