Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
| From | Shao Miller <sha0.miller@gmail.com> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: Union test for endianess |
| Date | 2011-06-17 13:33 -0500 |
| Organization | A noiseless patient Spider |
| Message-ID | <itg36b$m9c$1@dont-email.me> (permalink) |
| References | <f19541de-213c-4744-b712-92f20a3ad294@d26g2000prn.googlegroups.com> <iteme0$3va$1@dont-email.me> <18896aaa-106d-4a43-95bb-a08e13676be2@x38g2000pri.googlegroups.com> <iteu3o$8ll$1@dont-email.me> <memory-access-20110617145611@ram.dialup.fu-berlin.de> |
On 6/17/2011 7:57 AM, Stefan Ram wrote:
> Shao Miller<sha0.miller@gmail.com> writes:
>> Which union rules are you worried about, in particular?
>
> One might worry about not knowing whether or where C actually
> specifies the value of a certain member. For example, in
>
> U.i=0x12345678; // writing to int member
> if ( U.ch[0]==0x78 ) // reading from char member
>
> or
>
> int i=0x12345678; // sizeof(int) == 4
> char *ch=(char *)&i;
>
> , we assume that the value *ch is a »window« into the
> in-memory representation of i. but does the C standard
> actually requires an implementation to behave this way
> somewhere? If so, where?
>
6.2.6.1p4 defines "object representation." The 'i' member and the union
itself have an object representation.
6.2.6.1p5 allows for a an lvalue expression ('U.ch[0]') with a character
type (such as 'char') to read the stored value.
6.5p7 confirms that an lvalue expression with a character type can read
the stored value.
>> One of the guarantees of the character types is that all objects can
>> have all of their bits manipulated/inspected via access through a
>> character type.
>
> Yes, it would be nice to know, where one can find this.
> In the best case, all the steps needed to prove that *ch
> really has the semantics as intended above.
>
Please see above, plus:
6.2.6p3 states that the representation of 'unsigned char' is "pure binary."
6.2.6.2p1 states that 'unsigned char' is not divided into value bits and
padding bits. Since it has values, that leaves only value bits. That
means that there is no bit which cannot be accessed.
The treatment of 'signed char' and implementations where 'char' is akin
to 'signed char' simply has one of the bits being a sign bit[6.2.6.2p6].
Do you have alternative interpretations of these?
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Union test for endianess Bhasker Penta <bskdsp@gmail.com> - 2011-06-16 20:16 -0700
Re: Union test for endianess Ian Collins <ian-news@hotmail.com> - 2011-06-17 15:36 +1200
Re: Union test for endianess Willem <willem@toad.stack.nl> - 2011-06-17 14:13 +0000
Re: Union test for endianess Joe Wright <joewwright@comcast.net> - 2011-06-17 14:00 -0400
Re: Union test for endianess Jorgen Grahn <grahn+nntp@snipabacken.se> - 2011-06-19 19:25 +0000
Re: Union test for endianess China Blue Angels <chine.bleu@yahoo.com> - 2011-06-16 20:54 -0700
Re: Union test for endianess Willem <willem@toad.stack.nl> - 2011-06-17 14:14 +0000
Re: Union test for endianess James Kuyper <jameskuyper@verizon.net> - 2011-06-17 10:28 -0400
Re: Union test for endianess Keith Thompson <kst-u@mib.org> - 2011-06-17 10:54 -0700
Re: Union test for endianess Shao Miller <sha0.miller@gmail.com> - 2011-06-17 10:35 -0500
Re: Union test for endianess "J. J. Farrell" <jjf@bcs.org.uk> - 2011-06-18 01:50 +0100
Re: Union test for endianess China Blue Angels <chine.bleu@yahoo.com> - 2011-06-16 21:00 -0700
Re: Union test for endianess Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-06-17 12:09 +0100
Re: Union test for endianess Shao Miller <sha0.miller@gmail.com> - 2011-06-17 00:50 -0500
Re: Union test for endianess Bhasker Penta <bskdsp@gmail.com> - 2011-06-16 23:17 -0700
Re: Union test for endianess Shao Miller <sha0.miller@gmail.com> - 2011-06-17 03:01 -0500
Re: Union test for endianess Shao Miller <sha0.miller@gmail.com> - 2011-06-17 13:33 -0500
Re: Union test for endianess James Kuyper <jameskuyper@verizon.net> - 2011-06-18 09:18 -0400
Re: Union test for endianess Shao Miller <sha0.miller@gmail.com> - 2011-06-19 17:22 -0500
Re: Union test for endianess Tim Rentsch <txr@alumni.caltech.edu> - 2011-06-19 16:24 -0700
Re: Union test for endianess Bhasker Penta <bskdsp@gmail.com> - 2011-06-18 01:08 -0700
Re: Union test for endianess Tim Rentsch <txr@alumni.caltech.edu> - 2011-06-19 15:52 -0700
Re: Union test for endianess James Kuyper <jameskuyper@verizon.net> - 2011-06-17 09:32 -0400
Re: Union test for endianess James Kuyper <jameskuyper@verizon.net> - 2011-06-17 09:52 -0400
Re: Union test for endianess Bhasker Penta <bskdsp@gmail.com> - 2011-06-17 07:13 -0700
Re: Union test for endianess James Kuyper <jameskuyper@verizon.net> - 2011-06-17 10:31 -0400
Re: Union test for endianess "christian.bau" <christian.bau@cbau.wanadoo.co.uk> - 2011-06-17 15:57 -0700
Re: Union test for endianess Keith Thompson <kst-u@mib.org> - 2011-06-17 16:42 -0700
Re: Union test for endianess James Waldby <not@valid.invalid> - 2011-06-18 02:53 +0000
Re: Union test for endianess James Kuyper <jameskuyper@verizon.net> - 2011-06-17 23:59 -0400
Re: Union test for endianess James Waldby <not@valid.invalid> - 2011-06-18 14:45 +0000
Re: Union test for endianess James Kuyper <jameskuyper@verizon.net> - 2011-06-18 11:08 -0400
Re: Union test for endianess cri@tiac.net (Richard Harter) - 2011-06-18 19:47 +0000
Re: Union test for endianess James Waldby <not@valid.invalid> - 2011-06-18 23:15 +0000
Re: Union test for endianess James Kuyper <jameskuyper@verizon.net> - 2011-06-18 22:42 -0400
Re: Union test for endianess Jens <jens.gustedt@gmail.com> - 2011-06-19 07:41 -0700
Re: Union test for endianess Roberto Waltman <usenet@rwaltman.com> - 2011-06-22 11:25 -0400
Re: Union test for endianess James Kuyper <jameskuyper@verizon.net> - 2011-06-22 11:40 -0400
Re: Union test for endianess James Waldby <not@valid.invalid> - 2011-06-22 21:42 +0000
Re: Union test for endianess James Kuyper <jameskuyper@verizon.net> - 2011-06-17 21:18 -0400
Re: Union test for endianess falk@rahul.net (Edward A. Falk) - 2011-06-17 20:50 +0000
Re: Union test for endianess "Morris Keesan" <mkeesan@post.harvard.edu> - 2011-06-18 10:42 -0400
Re: Union test for endianess Ben Bacarisse <ben.usenet@bsb.me.uk> - 2011-06-18 22:55 +0100
Re: Union test for endianess "Morris Keesan" <mkeesan@post.harvard.edu> - 2011-06-19 21:14 -0400
Re: Union test for endianess Jens <jens.gustedt@gmail.com> - 2011-06-19 07:46 -0700
Re: Union test for endianess Tim Rentsch <txr@alumni.caltech.edu> - 2011-06-19 16:14 -0700
Re: Union test for endianess Shao Miller <sha0.miller@gmail.com> - 2011-06-19 20:24 -0500
Re: Union test for endianess Jens <jens.gustedt@gmail.com> - 2011-06-20 00:31 -0700
Re: Union test for endianess Shao Miller <sha0.miller@gmail.com> - 2011-06-20 04:33 -0500
Re: Union test for endianess Tim Rentsch <txr@alumni.caltech.edu> - 2011-06-20 12:22 -0700
csiph-web