C-ben miért jobb a typedef struct, mint ha csak simán deklarálnám egyenként a dolgokat?
tehát pl
int x;
int y;
miért jobb a typedef struct {
int x;
int y;
} valami;
Analógia:
Miért jobb egyetlen cetlire írni az összes szót, mint minden szót külön cetlire?
Egyszerűbb hordozni, az összetartozóak együtt vannak, ...
Szerintem te is megérted miért jobb a typedef structtal használni, ha nem egy x, y-nal jelölt pontban gondolkozol, hanem 100 ilyen pontban.
Egyszerűbb tárolni és nehezebb az indexelést is elrontani, ha a pontot egy egységként kezeled és nem két számként.
...egyetlen stócban (tömbben) kezelheted őket...
De volt már ez a kérdés korábban:
http://www.gyakorikerdesek.hu/szamitastechnika__programozas_..
Csinálj egy függvény aminek a visszatérési értéke egy 2D koordináta (x, y). Hajrá!
Ha majd sikerült, rájössz miért jobb struktúrákba szervezni a dolgokat.
inb4 cím szerinti paraméter átadás:
Valóban meg lehet oldani cím szerinti paraméterátadással de most nem ez a lényeg.
Egy idő után pedig azokat a függvényeket is struktúrákhoz fogod kötni, amelyek azokon operálnak. Egy header fájlba teszed őket, prefix-eled a nevüket és konvencióban elhatározod, hogy az első paraméter mindig a a struktúra mutatója lesz.
Egy idő után pedig hiányozni fog a polimorfizmus :)
Aztán pedig megkönnyebbülés lesz ha C++ tanulsz, és tisztelni fogod az OOP-t.
A struktúra lehetővé teszi, hogy összekapcsold a fogalmilag összetartozó részeket. Pl: csinálhatsz tömböt ilyen struktúrákból. Oké megfordíthatod, és akkor tömböket raksz egy struktúrába, de az elsőt egyszerűbb megérteni.
Az OO koncepció nem tartozik ide. Nem csak erre vannak a struktúrák, és nem attól OO a program mert minden függvény egy osztályhoz tartozik, sőt ez néha nagyon erőltetett tud lenni (amikor összevissza statikus metódusokat beraksz egy osztályba és elnevezed Util-nak, lásd Java). A polimorfizmust is meg lehet csinálni C-ben, ha nagyon szeretnéd, és akkor vannak függvény pointereid vagy akár vtable, csak a lehetőség nem tudom mióta kényszer.
A kérdés inkább az lenne, hogy típusnevet csinálsz "valami" vagy "struct valami"-ként használod. Na az igazából szerintem mindegy. C++-ban is lehet használni a class kulcsszót a típus neve előtt.
"miért jobb a typedef struct"
Figyelj, az egy létező válasz, hogy szerinted nem jobb. Avagy még nem esett le. Nyugodtan használd a külön változókat, aztán ha később rájössz, annál jobb. Ha meg nem, akkor hagyd a fenébe az egészet.
köszi a válaszokat..
már rájöttem a koordinátás példa alapján :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!