[elektro] További C kérdés

hg12345 hg12345 at freemail.hu
Sun Jan 21 23:59:11 CET 2018


 A tömbös hivatkozás is lehet beszédes, ha az indexekhez #define neveket adsz.

#define Jolan 22
#define Kutya 32
stb...

de az indexeket akár egy enum-mal is meghatározhatod

név enum(Jolán=22,Kutya32)
ennek előnye ha typedef-t határozól meg hozzá és a index változót ezzel a typedef határozód meg, akkor nem megfelelő érték adásnál a fordító jelez, egy jobb C esetén.

Az enum esetén a beleszerkesztés egyszerű és dokumentált. 

A tömbnek további előnye könnyű számolni, pointerrel hivatkozni és láncolni....

Automatikusan fordítási időben szoktam egymásra hivatkozó pointertömböket létrehozni, sajnos az enum indexek nevét a legtöbb debugger nem adja vissza, de ha hibakeresés alatt, egy tömböt létrehozol az index typedef-ből, és minden indexet (nevet) tárolsz benne, akkor a debugger mutatja felsorolást nevet és értéket.

A preprocesszor többszörös újra hívásával, és hívásonként a #define törlése és újra megadásával,
automatikusan lehet az enumot, a tömböt és tartalmat feltölteni. Innen kezdve soha nem lesz problémád a rendszer karbantartásával, teljesen automatikussá váli és megfelelő elő #define és enum megadásával teljesen olvasható. 

Gondolom kijelzésben található menü pontok vagy menü szervezés ami a cél.

Persze kinek mi tetszik....
 
-------- Eredeti levél --------
Feladó: Bali Zoltan < eltexto at freemail.hu (Link -> mailto:eltexto at freemail.hu) >
Dátum: 2018 január 21 10:32:19
Tárgy: Re: [elektro] További C kérdés
Címzett: elektro at tesla.hu < elektro at tesla.hu (Link -> mailto:elektro at tesla.hu) >
 
Ez volt a kiindulás. De így nem tudok névvel hivatkozni.
Paraméter szerkesztéskor  az indexes módi jó.
De ha, valami konkrét paramétert akarok elérni,
a tömbös változat nem beszédes. Mindig kell
keresgetni, hogy egy paraméterhez milyen
index tartozik. Na meg, ha bővítek,
beleszerkesztek, a hajam égnek áll, az indexek
átírkálása miatt.
De ez a kettős elérés, megoldható a korábbi levelemben
idézett unionnal.
Köszi
Üdv.  Zoli
2018.01.21. 10:20 keltezéssel, hg12345 írta:
>  A struktura tömb nem lenne jobb megoldás?
> Egyszerűbb a hivatkozás is rá, mert elegendő egy pointer.
>
> -------- Eredeti levél --------
> Feladó: Bali Zoltan < eltexto at freemail.hu (Link -> mailto:eltexto at freemail.hu) >
> Dátum: 2018 január 21 08:55:36
> Tárgy: [elektro] További C kérdés
> Címzett: elektro at tesla.hu < elektro at tesla.hu (Link -> mailto:elektro at tesla.hu) >
>
> Hali,
> Van egy struktúra, ebből x azonos példányt
> csak más-más névvel felhasználok egy újabb
> struktúra definícióban. Hogy lehet megállapítani
> hogy az adott struktúra elem hányadik a top(az újabb)
> struktúrában. Vagy ne törjem a fejem rajta, mert
> nem lehet. Ja, még annyi, az alsó struktúra mezőbe kellene
> inicializálnom ezt az értéket. Tehát tudjam hányadik
> a sorban, amiből majd index lesz. Persze nem úgy, hogy
> odaírom az aggregátumok megadásánál.
> typedef struct  _TEST_SETT_ST
> {<!-- -->
>   TEST_ROW_ST First;
>   TEST_ROW_ST Second;
>     ...
>   TEST_ROW_ST Nth;
> } TEST_SETT_ST;
> Köszi
> Üdv.  Zoli
> -----------------------------------------
> elektro[-flame|-etc]
> -----------------------------------------
> elektro[-flame|-etc]
-----------------------------------------
elektro[-flame|-etc]


More information about the Elektro mailing list