[elektro] C struktura kérdés

Lajos Rancz lajos.rancz at gmail.com
Fri Apr 16 16:55:03 CEST 2010


Szia!

Ezt nem értem (az elsőt sem). Meg tudnád magyarázni egy bővebb példával?
Annyira leegyszerűsítetted, hogy nem érthető :o

Üdv,
Lajos

2010/4/16 hg12345 <hg12345 at freemail.hu>

> Ettől féltem :-(
>
> Mint említettem ez csak egy kiragadott példa.
> Az eredeti helyzetben egy ROM-ban összetett konstans leírását tartalmazza a
> strutc. Majd ez a struct igen sok helyen szerepel további struct belsejében.
> Mire leírom a teljes kifejtést, nem férek el monitoron, pedig nem kicsi, és
> értelmetlen lenne külön kifejteni a bitselect, mikor az többivel együtt
> értelmes.
>
> Ez a kis darab máshol és más környezetben szerepel, de a végén találkozik
> az eredeti struct-val
>
> Én nem akartam nevet adni a változó résznek, csak a struct-nak, hogy később
> hivatkozni tudjak erre a struct meghatározásra. Minden meghatározást
> szeretek egyszer definiálni, és a fordító bábáskodására bízom magamat és
> programomat.
>
>  pontosan nem ertelek, de:
>
> typedef struct{
>           unsigned b1:1;
>           unsigned b2:1;
>           };
>
> }AAA_T;
>
> typedef  union {
>          long   V1;
>         AAA_T tagAAA;
>          } TEST_t;
>
>
> miert nem jo?
>
> A.
> On 2010. 04. 16. 15:32, hg12345 wrote:
> > Hi!
> >
> > Hogyan lehet egy unnamed struct struktura nevet adni?
> >
> > typedef  union {
> >          long   V1;
> >           struct tagAAA{
> >            unsigned b1:1;
> >            unsigned b2:1;
> >           };
> >          } TEST_t;
> >
> >
> > typedef struct tagAAA  AAA_t;
> >
> > és későbbiekben ezt a typedef-et szeretném használni. A belső
> strukturának nem szeretnék nevet adni (unnamed).
> >
> > A fordító említi, hogy a tagAAA nem definiáltam ami jogos is.
> > Ezért később nem is tud rá hivatkozni.
> >
> > Ha felcserélem a TYPEDEF meghatározásokat vagy csak struct névvel
> definiálom ekkor nem tudok unnamed struct létrehozni, mert változó névre
> szükség van!
> >
> > #define esetén, meg nem válik azonos típusúvá  a két struktura, ezért
> castolás nélkül nem tőtlhetők egymásba.
> >
> > A fenti példa csak egy egyszerűsítés de a lényeg jól látszik belőle.
> >
> > Van erre megoldás?
> >
> > -----------------------------------------
> >           elektro[-flame|-etc]
> >
>
> -----------------------------------------
>          elektro[-flame|-etc]
>
> -----------------------------------------
>          elektro[-flame|-etc]
>


More information about the Elektro mailing list