Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Keith Thompson <kst-u@mib.org> |
|---|---|
| Newsgroups | comp.std.c |
| Subject | Re: Description of "." operator |
| Date | 2012-12-09 20:00 -0800 |
| Organization | None to speak of |
| Message-ID | <lnzk1mmu8c.fsf@nuthaus.mib.org> (permalink) |
| References | <lntxrxnufa.fsf@nuthaus.mib.org> <ka375e$es6$1@reader1.panix.com> |
jgk@panix.com (Joe keane) writes:
> In article <lntxrxnufa.fsf@nuthaus.mib.org>,
> Keith Thompson <kst-u@mib.org> wrote:
>>N1570 6.5.2.3p3 says:
>>
>> A postfix expression followed by the . operator and an identifier
>> designates a member of a structure or union object. The value
>> is that of the named member, and is an lvalue if the first
>> expression is an lvalue.
>>
>>Consider the use of the word "object" in the first sentence.
>>
>>An expression of struct type doesn't necessarily refer to an *object* of
>>that type.
>
> Look up 'temporary lifetime' (6.2.4).
I'm quite familiar with it. It's irrelevant to my example; it applies
only to a struct or union that contains a member of array type.
>>For example:
>>
>> struct pair { int x; int y; };
>> struct pair func(void) {
>> struct pair result = { 10, 20 };
>> return result;
>> }
>> ...
>> int y = func().y;
>
> Change your code to:
>
> struct pair { int x; int y; char thisisbs[1]; };
> struct pair func(void) {
> struct pair result = { 10, 20 };
> return result;
> }
> ...
> int y = func().y;
>
> to make it work.
I wasn't asking how to make the code work -- and it already works
just fine. A strict reading of the wording of the standard might
imply that the code has undefined behavior, but that clearly (IMHO)
was not the intent. It's the wording of the standard that needs
fixing, not my code.
--
Keith Thompson (The_Other_Keith) kst-u@mib.org <http://www.ghoti.net/~kst>
Will write code for food.
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
Back to comp.std.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Description of "." operator Keith Thompson <kst-u@mib.org> - 2012-12-07 18:34 -0800
Re: Description of "." operator Keith Thompson <kst-u@mib.org> - 2012-12-08 10:43 -0800
Re: Description of "." operator Jens Gustedt <jens.gustedt@loria.fr> - 2012-12-10 00:35 +0100
Re: Description of "." operator Keith Thompson <kst-u@mib.org> - 2012-12-09 20:02 -0800
Re: Description of "." operator jgk@panix.com (Joe keane) - 2012-12-09 23:34 +0000
Re: Description of "." operator Keith Thompson <kst-u@mib.org> - 2012-12-09 20:00 -0800
Re: Description of "." operator Tim Rentsch <txr@alumni.caltech.edu> - 2012-12-20 23:32 -0800
Re: Description of "." operator Keith Thompson <kst-u@mib.org> - 2012-12-21 02:08 -0800
Re: Description of "." operator Eric Sosman <esosman@comcast-dot-net.invalid> - 2012-12-21 09:18 -0500
Re: Description of "." operator Tim Rentsch <txr@alumni.caltech.edu> - 2012-12-21 08:45 -0800
Re: Description of "." operator Tim Rentsch <txr@alumni.caltech.edu> - 2012-12-21 08:37 -0800
Re: Description of "." operator Shao Miller <sha0.miller@gmail.com> - 2013-01-06 01:23 -0500
Re: Description of "." operator Keith Thompson <kst-u@mib.org> - 2013-01-05 23:51 -0800
Re: Description of "." operator Shao Miller <sha0.miller@gmail.com> - 2013-01-06 13:49 -0500
Re: Description of "." operator Keith Thompson <kst-u@mib.org> - 2013-01-06 22:12 -0800
Re: Description of "." operator Shao Miller <sha0.miller@gmail.com> - 2013-01-17 23:19 -0500
Re: Description of "." operator Shao Miller <sha0.miller@gmail.com> - 2013-01-18 20:47 -0500
Re: Description of "." operator Keith Thompson <kst-u@mib.org> - 2013-01-18 20:14 -0800
Re: Description of "." operator jgk@panix.com (Joe keane) - 2013-01-20 20:07 +0000
Re: Description of "." operator Shao Miller <sha0.miller@gmail.com> - 2013-01-20 15:36 -0500
csiph-web