[elektro] C struktura kérdés
hg12345
hg12345 at freemail.hu
Fri Apr 16 16:33:53 CEST 2010
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]
More information about the Elektro
mailing list