gmtime() Timerfunktion
-
Warum
#include <stdio.h> #include <time.h> #include <conio.h> int main(int argc, char *argv[]) { time_t zeit = 0x80000000; struct tm * ptm; ptm = gmtime(&zeit); return 0; }
liefert dieser Code einen Nullzeiger.
Welcher Wertebereich ist erlaubt für zeit?Danke für Eure Hilfe
-
-
c.rackwitz schrieb:
Steht da was von Grenzwerten???
-
bis 2038 sollte es sicherlich noch gehen.
time_t ist ueblicherweise ein 32 bit unsigned int, ueblicherweise. jetz scheisst mich bloss keiner an, dass das vom prozessor abhaengig ist!
-
in der time.h steht
typedef long clock_t;
wenn ich jetzt eine Variable
anlege
clock_t zeit
woher weiss ich dann, sie unsigned oder signed ist?
-
ein "long" ist ein "signed long int".
-
Zero_Clamping schrieb:
in der time.h steht
typedef long clock_t;
wenn ich jetzt eine Variable
anlege
clock_t zeit
woher weiss ich dann, sie unsigned oder signed ist?clock_t zeit=-1; if(zeit<0) puts("clock_t ist signed"); else puts("clock_t ist unsigned");
ich weiß nicht, ob der standard vorschreibt, ob time_t/clock_t vorzeichenbehaftet ist oder nicht, aber in der regel sind die glaub ich unsigned.
ansonsten kannst du jeden wert nehmen, den der datentyp fassen kann.
EDIT: mist! hab gerade festgestellt, das time_t bei meinem vc++6 vom typ long ist