Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » std::time

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.10.2007, 15:08 Uhr
banshee



hallöchen,

kann mir mal jemand erklären, wozu man hier nochmal einen static_cast einfügt?


C++:
std::srand(static_cast<unsigned>(std::time(0)));


std::time liefert doch wohl die Kalenderzeit in Sekunden, ist also sowieso positiv. Ist das Redundanz für das Verständnis (und somit guter Stil) oder übersehe ich etwas?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.10.2007, 15:12 Uhr
xXx
Devil


hmm std::time gibt std::time_t zurück(müsste) ... das müsste dann aber als unsigned definiert sein ... http://en.wikipedia.org/wiki/Time_t ... ok muss er nicht :P
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.10.2007, 15:43 Uhr
0xdeadbeef
Gott
(Operator)


time_t unsigned? Die Welt entstand 1970? Wow.

time_t muss nicht unsigned sein, und zum Beispiel die GNU libc definiert ihn auf Umwegen als long int. Das passt auch insofern besser, als dass time bei einem Fehler -1 zurückgeben soll.

Den Cast kann man sich aber trotzdem sparen, das castet der Compiler implizit.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.10.2007, 21:00 Uhr
banshee



okay das bedeutet also, wenn mir std::time(0) auch 0 zurückliefern würde, hätten wir den 1. Januar 1970?

Da fällt mir auf, ich weiß gerade gar nicht, wie signed -> unsigned gecastet wird.
Werden hier negative Zahlen als Vorzeichenzahl oder als 2K-Zahl gespeichert? Ich meine mich zu erinner, dass dann einfach das Vorzeichen auf 0, also positiv gesetzt wird und der Wert dann genommen wird.

Und dass er das automatisch castet liegt daran, dass srand einen uint übergeben bekommt, richtig?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: