Hej alle,
Jeg har observeret en underlig opførsel fra gcc:
givet følgende:
/* compile with: gcc -W -Wall -pedantic -std=c99 -o test test.c */
#include <stdlib.h>
#include <time.h>
#include <unistd.h>
#include <stdio.h>
int main()
{
srandom(time(NULL) + getpid());
printf("Random: %d\n", (int) random() % 10);
return 0;
}
Giver dette output
test.c: In function 'main':
test.c:8: warning: implicit declaration of function 'srandom'
test.c:9: warning: implicit declaration of function 'random'
Sættes -std=c89 får jeg samme output.
Nogen der kan forklare det?
Mit eget bud er, at option -std=c89 eller -std=c99 betyder, at stdlib.h
ikke definerer funktionerne srandom og random, men givet fald, hvor er de
så defineret henne?
Dooh, hev lige K&R ned fra hylden: I ansi C hedder de rand og srand.
Forskellen er, at rand returnerer en int, mens random returnerer en long
int.
Ikke noget spørgsmål mere, men jeg poster det alligevel, da andre kunne
have interesse for forklaringen. Håber det er OK med fundatsen for
gruppen?
--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917