[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