[elektro] C enum szarmaztatas

hg12345 hg12345 at freemail.hu
Thu Dec 3 14:27:21 CET 2015


Utólag az enum nem tölthető, de ha az osszes enumodat összefogod a unionban, akkor mindig az a felsorolást láthatod amit szeretnél :-)
typedef enum {p1=0,p2,p3,p4} list1_t;
typedef enum {k1=-1,k2,k3,k4} list2_t;
typedef enum {n1=0,n2,n3,n4} list3_t;

typedef union {
            list1_t l1;
            list2_t l2;
            list3_t l3;
            }  uni_enum_t;

Ilyen esetben a megadás a hívakozás egy kicsit hosszabb, de a debugger -ben a megfelelő nézetben a jó nevet adja ki.

A másik lehetőség egy enum-ba összefoglalni, az 

typedef enum {k1=-1,k2,p1=k2,n1=k2, .....} listall_t;
egyszerűbb a megadás a kód is olvasható marad, a debugger meg mindig ez első számhivtkozáshoz tartozó sorszám nevet jeleníti meg. 


A fordított kódot túlzottan nem érdekli hogy az valamilyen int típus milyen enum(felsorolás) értékeket kap.




Karoly Kovacs <koka55 at gmx.at> írta:
>Ezek szerint mégsem jól írtad le. :)
>Lajos eléggé hozzáértő, s ha neki sem volt világos, mit szeretnél...
>Egyébként nekem sem eléggé világos.
>Ezt írod: "van egy enum, de nem akarom modositani a tartalmat, csak 
>folytatni".
>Ez az én olvasatomban valami ilyesmi:
>enum akarmi{
>   szilva,
>   alma,
>   korte
>};
>Ezt folytatni akarod, tehát:
>enum akarmi{
>szilva,
>alma,
>korte,
>dio,
>mandula
>}; (és újrafordítás)
>
>Vagy olyasmit szeretnél, hogy a fordítás során lett egy enum-od, s annak 
>az utolsó eleme után futási időben szeretnél hozzáfűzni értékeket? Ez 
>fura lenne, s valóban, ahogy Lajos is írta, csak amolyan jobb kézzel 
>vakarom meg a bal fülemet megoldással lehetne (talán - ha egyáltalán 
>erről van szó).
>
>Károly
>
>uprogc . wrote:
>> Szia,
>>
>>> Mit szeretnél
>> csinálni?
>>
>> Leirtam :)
>>
>> 2015-12-03 12:21 GMT+02:00 Lajos Rancz <lajos.rancz at gmail.com>:
>>
>>> Helló!
>>>
>>> Alapvetően sehogy; de több trükk/megkerülési módszer is van. Mit szeretnél
>>> csinálni?
>>>
>>> Üdv
>>>
>>> 2015. december 3. 11:00 uprogc . írta, <uprogc at gmail.com>:
>>>
>>>> Sziasztok,
>>>>
>>>> Olyasmit akarok hogy van egy enum, de nem akarom modositani a tartalmat,
>>>> csak folytatni, tudom hogy csak egy int az egesz, de hogy ne kelljen
>>>> tipuskenyszeriteni a warningok miatt, hogy lehtne egy uj tipust ebbol
>>>> "szarmaztatni" ?
>>>>
>>>> Udv.
>>>> Szabi
>>>> -----------------------------------------
>>>>            elektro[-flame|-etc]
>>>>
>>> -----------------------------------------
>>>            elektro[-flame|-etc]
>> -----------------------------------------
>>            elektro[-flame|-etc]
>>
>
>-----------------------------------------
>          elektro[-flame|-etc]



More information about the Elektro mailing list