Frage zu Time_t()
-
hallo, ich habe folgenden Codeabschnitt,welcher funktioniert, aber der Compiler bringt die Fehlermeldung "\documents\visual studio 2008\projects\test\test\zeit.h(14) : warning C4244: '=': Konvertierung von 'time_t' in 'long', möglicher Datenverlust".
Ich will nur erreichen, die Anzahl der Tage von 1970 weg zu ermitteln. Die Ergebnisse stimmen, aber warum die Warnung? Muß ich sie wirklich ernst nehmen?
Hier der code:time_t startzeit; long Startticks; startzeit = time(NULL); Startticks = startzeit; cout<<Startticks/60/60/24;
-
Warnungen sind grundsätzlich immer ernst zu nehmen. In deinem Falle fragt der Compiler nach, ob die Typumwandlung tatsächlich beabsichtigt ist.
Wenn dies der Fall ist, sollte man Typkonvertierungen (zumindest diejenigen, die Warnungen erzeugen), mittels
static_cast(bitte keine C-Casts mit Klammern) durchführen.
-
Er warnt dich weil time_t grösser sein könnte als long.
Ich verstehe auch den Sinn dahinter nicht, wieso verwendest du nicht gleich time_t?