initialising anonymous unions/structures

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I'm having a bit of trouble initializing a union which contains a
anonymous structure.  Here's what it looks like:

  union foo
  {
    int raw;
    struct {
      int x : 16;
      int y : 16;
    };
  };

It is possible to reference "x" and "y" in the same scope as "raw".
Example:

  union foo foo = { .raw = XY };
  printf ("%x\n", foo.x);

But I can't for the love of my life initialize "x" and "y" in a static
construct;

  union foo bar =
  {
    .x = 10,
    .y = 20
  };

Just gives me the following errors:

  bar.c:13: unknown field `x' specified in initializer
  bar.c:14: unknown field `y' specified in initializer

Are there some other way to refer to "x" and "y"?  I have tried things
like: 

  union foo bar =
  {
    0,
    {
      .x = 10,
      .y = 20
    }
  };

Without luck:

  bar.c:14: extra brace group at end of initializer
  bar.c:14: (near initialization for `bar')

Looking through the ML archives I found [1], so it seems that I'm not
the only one having this problem.

 [1] http://gcc.gnu.org/ml/gcc/2003-10/msg00708.html



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux