Conflicting types a compiler error. Na de hogy javítsam ki?
typedef struct {
int hour;
int min;
int sec;
} time;
int time2sec(time a){
int masodperc;
masodperc=a.hour*3600+a.min*60+a.sec;
return masodperc;}
time sec2time(int masodperc){
time b;
if(masodperc>=86400)
{while(masodperc>=86400)
{masodperc=masodperc-86400;}}
while(masodperc>0)
{b.hour=masodperc-3600;
masodperc=b.hour;}
while(masodperc>0)
{b.min=masodperc-60;
masodperc=b.min;}
b.sec=masodperc;
return b;
}
Itt a feladat hogy kellett egy struktúra az idő tárolására, aztán egy függvény ami másodpercre vált át mindent, majd egy másik függvény ami másodpercre vált át normál időre. (Ugye az órát 0-23 lehet értelmezni.
Gondolom c, bár ebben nem programoztam sokat, de azért a while rész nem tetszik.
A typedef -meg kivül van a hatáskörön, hiába definiálod, így nem látszódik a függvényeken belül és már ezért is elhasal.
Szóval a kérdés, hogyan lehet olyan típust létrehozni, ami mindenhol használható és hogyan kell rá hivatkozni, ezen indultam el. Egyik megoldás, hogy eleve osztály lenne stb.., de másik megoldás:
namespace my_time
{
typedef struct
{
int hour;
int min;
int sec;
} time;
}
A függvényeknél/változók definiálásakor pedig pl:
my_time::time sec2time(......
Ami még csúnya szerintem a while használata ilyen esetben, sokkal szebben megoldható az egészrész függvény használatával az óra, perc, másodperc megállapítása.
A lényeget megint nem mutattad meg (hogy mit csinálsz a main()-ben).
Nekem így lefut:
time x;
x = sec2time(11111);
printf("%d %d %d", x.hour, x.min, x.sec);
Mondjuk az eredmény hibás:
-3289 22064 -3289
Egyébként abban igaza van az elsőnek, hogy ez a while ciklusos megoldás elég csúnya (még ha működne is), viszont a typedef jónak tűnik.
Valószínűleg csak a mainben rontottál el valamit.
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!