Reputation: 281
Whenever I try to use srand
function I get this warning
"implicit declaration of function 'time' [-Wimplicit-function-declaration]|"
and a windows error report appears when running the compiled file,
I'm a novice to c programming, I found this on a text book, but it doesn't work for me.
srand (time());
int x= (rand()%10) +1;
int y= (rand()%10) +1;
printf("\nx=%d,y=%d", x,y);
What do I need to correct this?
Upvotes: 28
Views: 80344
Reputation: 428
I had this issue, and the problem was that in windows you need to include sys/time.h
, but in linux you need time.h
and I didn't notice.
I fixed this by adding a simple platform check:
#ifdef _WIN32
#include <sys/time.h>
#else
#include <time.h>
#endif
Note that this is for windows and linux, because that's what I needed for my program.
Upvotes: 0
Reputation: 1061
Note that time()
function uses current time (expressed in seconds since 1970) both in its return value and in its address argument.
Upvotes: 1
Reputation: 213060
You need to make sure that you #include
the right headers, in this case:
#include <stdlib.h> // rand(), srand()
#include <time.h> // time()
When in doubt, check the man pages:
One further problem: time()
requires an argument, which can be NULL
, so your call to srand()
should be:
srand(time(NULL));
Upvotes: 48