On 08/04/2011 12:36 PM, David Laight wrote:
On Thu, Aug 04, 2011 at 08:30:41AM -0400, max wrote:
On 08/03/2011 09:28 AM, Henri Verbeet wrote:
Well yes, it's implementation defined, not undefined. The point is that there isn't necessarily any relation to endianness. Just use shifts and masks.
...
union field_order { int an_int; int a_bit:1 } test; test.an_int=0; test.a_bit=1;
...
There are 4 likely values for test.an_int (1, 0x80, 0x80000000, 0x01000000), and all might be generated regardless of the system endianness.
David
Hmm... 0x80 and 0x01000000 would be very hard to handle. So hard in fact that I would consider any implementation that produced them to be broken, but you're right, THWI!
Max