funktionen (randomNum) anropas aldrig så den kommer aldrig köras
Hej jag fick ett meddelande av min lärare där hon vill att jag ska anropa funktionen men är lite förvirrad har jag inte gjort det längst uppe ?
int randomNum(void); är inte ett anrop - det är en funktions deklaration.
Det medgör att du kan kalla på metoden även fast den ligger under main.
Annars kommer din kompilator klaga på "implicit declaration of function randomNum"
Går även att lösa med att man lägger main längst ner i koden och har randomNum över.
datav skrev:int randomNum(void); är inte ett anrop - det är en funktions deklaration.
Det medgör att du kan kalla på metoden även fast den ligger under main.
Annars kommer din kompilator klaga på "implicit declaration of function randomNum"
Går även att lösa med att man lägger main längst ner i koden och har randomNum över.
Förstod inte riktigt vad du menade, ska jag lägga funktionsdeklarationen under i main eller ska jag flytta ner main funktionen och upp med den andra funktionen?
Du gör ett par farliga saker.
Att deklarera en variabel utan att sätta den kan leda till odefinierat beteende som kan leda till att du kraschar. Har du tur är den 0 per default av din IDE men det är inte värt att riskera det. Inte heller ska du göra det till en vana.
Du måste också casta srand av time.
C kör koden som den kommer, om du försöker kalla på en funktion deklarerad efter main så kommer inte det att köras då den inte vet vad det är för något du refererar till.
Du har två val, lägga main efter alla dina funktioner eller skriva en prorotyp av dina funktioner längst upp.
Låt säga att jag har en funktion:
int doSomething()
{
....
...
}
En prototyp som berättar för main att funktionen existerar som du gjort längst up:
int doSomething(void);
Nu inuti main får du kalla på funktionen genom att kalla på dess namn. Precis som när du skriver prototypen.
Stämmer det nu?
Ja, det funkar, kolla så det går att köra också och gör som du ska.
Varningen kommer eftersom du inte castar retur typen i argumentet för srand.
srand((unsigned)time(NULL));