Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #53808

Re: "lvalue"

From James Kuyper <jameskuyper@verizon.net>
Newsgroups comp.lang.c
Subject Re: "lvalue"
Date 2014-12-03 13:03 -0500
Organization Self
Message-ID <547F507C.8090002@verizon.net> (permalink)
References <lvalue-20141203103107@ram.dialup.fu-berlin.de> <m5nhhr$qda$1@dont-email.me>

Show all headers | View raw


On 12/03/2014 12:34 PM, buja wrote:
> On 12/03/2014 10:41 AM, Stefan Ram wrote:
>>    N1256 said:
>>
>>        »An lvalue is an expression with an object type
>>        or an incomplete type other than void«.
>>
>>    That makes »2« an lvalue.
>>
>>    N1570 says:
>>
>>        »An lvalue is an expression (with an object type other
>>        than void) that potentially designates an object«.
>>
>>    This now defers the meaning to »potentially designate«,
>>    »potentially designate« seems to be vague (not defined).
>>
>>    And why call an expression a value (an lvalue) at all?
>>    After all, an expression is not a value.
>>
>>    Possibly, it might be better to abandon the term »lvalue«
>>    and use »object expression« instead?
>>
>>    N1570 has changed the wording of N1256 and thereby has
>>    acknowledged problems with the wording. N1256 was published
>>    in 2007 IIRC. The term »lvalue« was used for decades in
>>    the 20th century, and now, in the 21st century, people
>>    have problems even saying what it means?
>>
> K&R (2nd Edition, section A5) says: "An object is a named region of 
> storage; an lvalue is an expression referring to an object."
> 
> With these definitions, it is clear to me that »2« cannot be an lvalue.

K&R was, originally, the most authoritative source of information about
C. However, when C was standardized, the C standard became the relevant
authority, and it's the C standard that he's quoting above. K&R 2nd
edition described C90, but any discrepancy between the C90 standard and
K&R 2nd Edition must be resolved in favor of the standard. The above
description is a good match to the C90 wording, so is not evidence of
such a discrepancy.
N1570, cited above, corrects the C90 description to include expressions
that might or might not designate an object, depending upon the values
of their sub-expressions.

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Re: "lvalue" buja <buja66@gmail.com> - 2014-12-03 18:34 +0100
  Re: "lvalue" James Kuyper <jameskuyper@verizon.net> - 2014-12-03 13:03 -0500
  Re: "lvalue" jacob navia <jacob@spamsink.net> - 2014-12-03 19:29 +0100
    Re: "lvalue" buja <buja66@gmail.com> - 2014-12-03 20:01 +0100
      Re: "lvalue" Keith Thompson <kst-u@mib.org> - 2014-12-03 12:18 -0800
      Re: "lvalue" Geoff <geoff@invalid.invalid> - 2014-12-03 12:20 -0800
      Re: "lvalue" James Kuyper <jameskuyper@verizon.net> - 2014-12-03 15:29 -0500
        Re: "lvalue" James Kuyper <jameskuyper@verizon.net> - 2014-12-03 21:48 -0500
          Re: "lvalue" Keith Thompson <kst-u@mib.org> - 2014-12-04 08:20 -0800
            Re: "lvalue" James Kuyper <jameskuyper@verizon.net> - 2014-12-04 11:44 -0500
              Re: "lvalue" Keith Thompson <kst-u@mib.org> - 2014-12-04 11:41 -0800
                Re: "lvalue" James Kuyper <jameskuyper@verizon.net> - 2014-12-04 14:50 -0500
        Re: "lvalue" Keith Thompson <kst-u@mib.org> - 2014-12-03 23:40 -0800
    Re: "lvalue" Tim Rentsch <txr@alumni.caltech.edu> - 2014-12-05 09:16 -0800

csiph-web