Kezdőoldal » Számítástechnika » Programozás » Conflicting types a compiler...

Conflicting types a compiler error. Na de hogy javítsam ki?

Figyelt kérdés

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.



2021. okt. 25. 05:34
 1/5 anonim ***** válasza:

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.

2021. okt. 25. 09:14
Hasznos számodra ez a válasz?
 2/5 Pelenkásfiú ***** válasza:

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

2021. okt. 25. 09:29
Hasznos számodra ez a válasz?
 3/5 Pelenkásfiú ***** válasza:

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.

2021. okt. 25. 09:36
Hasznos számodra ez a válasz?
 4/5 anonim ***** válasza:
Hmm, én csak egy sanboxba copyztam be és nem akart menni valamiért, csak úgy, ha ezt megcsináltam a typedeffel.. , de lehet a sandbox hibája akkor.
2021. okt. 25. 09:37
Hasznos számodra ez a válasz?
 5/5 anonim ***** válasza:
Ahh a gond az volt, hogy a time nem tetszett neki önmagában, mert már deklarálva volt.
2021. okt. 25. 09:58
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!