[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