On Tue, Jul 19, 2011 at 2:56 PM, Cheng Renquan <[email protected]> wrote:
> Hi all,
>
> From info gcc I know it accepts a series of `.FIELDNAME' and `[INDEX]'
> designators,
> like
>
> struct point ptarray[10] = { [2].y = yv2, [2].x = xv2, [0].x = xv0 };
>
>
> But in my case, I have a struct with array of int as members,
>
> struct mbox {
> int x[20];
> int y[20];
> };
>
> and want to declare a mbox variable with partially initialized, like
>
> struct mbox mbox = { .x = { 1, 2 }, .y[19] = 3, };
Sorry, my above example is not good, it compiles and works ok;
What's really not working is this example by union:
union mbox {
int w[3];
short s[6];
char c[12];
};
If I declare a union mbox and want to initialize w[0], s[2] and c[6],
union mbox mbox = { .w = { 1, }, .s[2] = 2, .c[6] = 's' };
I want a mbox initialized with these 12 bytes (on little endian):
0000: 01 00 00 00 02 00 73 00 00 00 00 00
And actually I got these:
0000: 00 00 00 00 00 00 73 00 00 00 00 00
the hexdump result shows only last .c[6] make effect,
Wonder if this is a bug or not supported? Thanks,