Tralasciando la sintassi "antica" visto che sto su un libro abbastanza vecchiotto, data la seguente sintassi quando vado a compilare con gcc, mi appare il seguente messaggio di errore.
SORGENTE:
ERRORE
SORGENTE:
C:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
// Costanti di enumerazione che rappresentano lo stato del gioco
enum Status { CONTINUE, WON, LOST };
int rollDice(void);
int main() {
int sum; // Somma del punteggio del lancio dei dadi
int myPoint; // punti guadagnati
enum Status gameStatus; // Può contenere continue, won e lost
// randomicca il generatore di numeri casuali usando l'ora corrente
srand(time(NULL));
sum = rollDice(); // Primo lancio del dado
// Determina lo stato del gioco in base al punteggio dei dadi
switch (sum) {
// Vince al primo lancio
case 7:
case 11:
gameStatus = WON;
break;
// Perde al primo lancio
case 2:
case 3:
case 12:
gameStatus = LOST;
break;
// memorizza il punteggio
default:
gameStatus = CONTINUE;
myPoint = sum;
printf("Point is %d\n", myPoint);
break;
}
// finchè il gioco non è completato
while (gameStatus == CONTINUE) {
sum = rollDice(); //Continua a lanciare
//determina lo stato del gioco
if (sum == myPoint) {
gameStatus = WON;
}
else {
if (sum == 7) {
gameStatus = LOST; // il gioco è finito, il giocatore ha perso
}
}
}
// Visualizza un messaggio di vittoria o di sconfitta
if (gameStatus == WON) {
printf("Player wins\n");
}
else {
printf("Players loses\n");
}
return 0;
}
int rolldDice(void) {
int die1; // punteggio del primo dado
int die2; //punteggio del secondo dado
int workSum; // somma dei punteggi del dado
die1 = 1 + (rand() % 6); // genera punteggio casuale di die1;
die2 = 1 + (rand() % 6); // genera punteggio casuale di die2;
workSum = die1 + die2;
// Visualizza i risultati di questo lancio;
printf(" Player rolled %d + %d = %d\n", die1, die2, workSum);
return workSum; // restituisce la somma del punteggio dei dadi;
}
ERRORE
/tmp/ccAEM01I.o: nella funzione "main":
fig05_10.c:(.text+0x1a): riferimento non definito a "rollDice"
fig05_10.c:(.text+0x6b): riferimento non definito a "rollDice"
collect2: error: ld returned 1 exit status
fig05_10.c:(.text+0x1a): riferimento non definito a "rollDice"
fig05_10.c:(.text+0x6b): riferimento non definito a "rollDice"
collect2: error: ld returned 1 exit status