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

[MiNT] anonymous structs and C99



Okay, this isn't exactly Atari/MiNT related question but I came to this while coding on Atari :) And since there is plenty of skilled people...

This:

struct xxx
{
  int x;
  int y;
  union
  {
    char* pointer1;
    int* pointer2;
  };
} a;

compiles just fine with gcc. But as soon as I switch to -std=c99 mode, compiler complains: error: ‘struct xxx’ has no member named ‘pointer1’. From what I know, C99 standard says anonymous structs should be allocated on stack but I don't see how it relates to this problem...

Is there any workaround for this? I like this anonymous union because it makes access to various pointers easier (I don't have to use void* and then cast it) and it has always the same size (char*, int*, short* -- everything pointers).

Any hint appreciated :)

--
MiKRO / Mystic Bytes
http://mikro.atari.org