Use a struct tag, rather than the typdef tag for your storage type, as:

typedef struct _TMenu
{
        ...
        struct _TMenuItem items[];
}
TMenu;

typedef struct _TMenuItem
{
        ...
        struct _TMenu *ptr;
        ...
}
MenuItem;

-----Original Message-----
Subject: [avr-gcc-list] Typdef chick 'n egg situation.. way out ?

Hi list,


Problem: I have two typdef's statement, each type contains a pointer to
the other type ! Hmmm....


typedef TMenuItem struct {
        char    text[20];
        TMenu   *ptr;
        void (*fptr)();
};

typedef TMenu struct {
        uint8_t         nb;
        char            title[20];
        TMenuItem       items[];
};


I am basically rewriting (following a computer crash..) a program I did
3+ years ago.. all from memory. Back then ISTR some kind soul on here,
sorted me out with something he called "forward declaration"... but I
can't seem to manage to find this particular post in the list archive
sadly.

I think it was a line just saying "TMenu" will be defined further down,
don't worry Mister GCC and just accept my TMenuItem struct below, you
will find TMenu soon enough. Something to that effect ! ;-)


TIA...

Regards,

--
Vince


_______________________________________________
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list




_______________________________________________
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list

Reply via email to