implizite Deklaration der Funktion ‘Zeit’ [-Wimplicit-function-declaration]|

Lesezeit: 2 Minuten

Benutzer-Avatar
Chatura Dodamgoda

Wann immer ich versuche zu verwenden srand Funktion verstehe ich Warnung

"implicit declaration of function 'time' [-Wimplicit-function-declaration]|" 

und ein Windows-Fehlerbericht erscheint wann Ausführen der kompilierten Datei,
Ich bin ein Anfänger in der C-Programmierung, ich habe das in einem Lehrbuch gefunden, aber es funktioniert bei mir nicht.

  srand (time());  
  int x= (rand()%10) +1;  
  int y= (rand()%10) +1;  
  printf("\nx=%d,y=%d", x,y); 

Was brauche ich um das zu korrigieren?

Benutzer-Avatar
Paul R

Sie müssen sicherstellen, dass Sie #include die richtigen Überschriften, in diesem Fall:

#include <stdlib.h>  // rand(), srand()
#include <time.h>    // time()

Überprüfen Sie im Zweifelsfall die Manpages:

$ Mannrand

$ Mannzeit

Ein weiteres Problem: time() erfordert ein Argument, das sein kann NULLalso Ihr Aufruf an srand() sollte sein:

srand(time(NULL));

  • Danke für die Antwort. Ich habe die stdlib.h hinzugefügt, aber nach dem Einfügen von time.h gibt es mir einen weiteren Fehlerfehler: zu wenige Argumente, um ‘time’ zu funktionieren

    – Chatura Dodamgoda

    17. März 2013 um 7:25 Uhr


  • Der Code, den ich eingeschlossen habe, funktioniert gut auf Online-Compilern wie Codepad. Ich verwende Codeblocks ide auf meinem PC

    – Chatura Dodamgoda

    17. März 2013 um 7:33 Uhr

  • man rand funktioniert möglicherweise nicht wie erwartet. Es gibt andere Dienstprogramme namens rand

    – Gelees

    18. Dezember 2018 um 3:54 Uhr

Benutzer-Avatar
Acsor

Beachten Sie, dass time() Die Funktion verwendet die aktuelle Zeit (ausgedrückt in Sekunden seit 1970) sowohl in ihrem Rückgabewert als auch in ihrem Adressargument.

Ich hatte dieses Problem, und das Problem war, dass Sie es in Windows einbeziehen müssen sys/time.haber unter Linux brauchen Sie time.h und ich habe es nicht bemerkt.

Ich habe dies behoben, indem ich eine einfache Plattformprüfung hinzugefügt habe:

#ifdef _WIN32
#include <sys/time.h>
#else
#include <time.h>
#endif

Beachten Sie, dass dies für Windows und Linux gilt, da ich das für mein Programm benötigte.

1351180cookie-checkimplizite Deklaration der Funktion ‘Zeit’ [-Wimplicit-function-declaration]|

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy