2013-03-17 11 views
14

Ilekroć próbuję użyć srand funkcji otrzymuję ten ostrzeżeniedomniemana deklaracja funkcji "time" [-Wimplicit-function-declaration] |

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

i pojawia się, gdy uruchamiając skompilowany plik raport o błędzie okna,
Jestem początkującym programowania C, I znalazłem to w książce tekstowej, ale to nie działa dla mnie.

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

Co jest potrzebne, aby to poprawić?

Odpowiedz

24

Musisz upewnić się, że #include właściwych nagłówków, w tym przypadku:

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

W razie wątpliwości należy sprawdzić strony podręcznika:

$ man rand

$ man time

Kolejny problem: time() wymaga argumentu, który może być NULL, więc wywołanie srand() powinno być:

srand(time(NULL)); 
+0

dzięki za odpowiedzi .. I hv zawarte w stdlib.h, ale po tym time.h daje mi kolejny błąd błąd: zbyt mało argumentów do funkcji „czas” –

+0

kod włączyłem działa dobrze na kompilatory internetowych, takich jak kod pad .. im za pomocą bloków kodu ide na moim PC –

+1

Odpowiedź teraz zaktualizowana, aby pokryć brakujący argument dotyczący czasu(). –

1

Zauważ, że funkcja wykorzystuje time() aktualny czas (wyrażony w sekundach od 1970 roku), zarówno w jego wartości zwracanej i w adresie argumentu.

Powiązane problemy