tomatediabolik
tomatediabolik

Reputation: 111

Unexpected error when compiling

I'm doing a C program in Unix that simulate a F1 race. There is a problem in one of my struct and I can't identify the problem.

My first struct :

typedef struct { 
int NumVoiture; /* numéro de la voiture : 1..24 Ne pas oublier d'ajouter 1 si number >= 13 lors de l'affichage */ 
int Status; /* le statut de la voiture, ARRETCOURT, Abandon, etc... */ 
int TourActuel; /* le numéro du tour actuel de la voiture */ 
int SecteurActuel; /* le numéro du secteur actuel de la voiture (0..2) */ 
TempsDuTour TempsDuTour; /* le temps du tour courant */ 
TempsDuTour MeilleurTour; /* le meilleur de temps de la séance pour cette voiture */ 
TempsDuTour MeilleursSecteurs; /* chaque meilleur secteur de la séance pour cette voiture */ 
struct timeval HeureFinSecteur[NBSECTEURS]; /* heure de passage à la fin de chaque secteur */ 
struct timeval HeureDebutSecteur; /* heure (précision à la microsec) au début d'un secteur, voir timeval sur le net */ 
} Voiture;

And my second struct :

typedef struct 
{ 
int NumVoiture; 
int TypeDeSeance; 
DonneesPartagees * Voiture; 
DonneesPartagees * Session; 
DonneesPartagees * CompressionTemporelle; /* compression temporelle */ 
Voiture ** Rang; /* tableau de pointeurs */ 
} Containeur; 

The problem appears when I tried to use that function :

void initContaineur(Containeur * x, int NumVoiture, int TypeDeSeance, DonneesPartagees * Voiture, DonneesPartagees * Session, DonneesPartagees * CompressionTemporelle, Voiture ** Rang) 
{ 
x->NumVoiture = NumVoiture; 
x->TypeDeSeance = TypeDeSeance; 
x->Voiture = Voiture; 
x->Session = Session; 
x->CompressionTemporelle = CompressionTemporelle; 
x->Rang = Rang; 
} 

The error says

expected declaration specifiers or '...' before 'Voiture'

There is a second error when I call "Voiture * Rang[NBVOITURES];" in the main()

'Rang' undeclared (first use in this function)

Thanks in advance !

Upvotes: 1

Views: 104

Answers (1)

jwodder
jwodder

Reputation: 57470

Your first typedef makes Voiture the name of a type, yet in initContainer you're trying to use Voiture as the name of a parameter. Obviously, this causes problems, and you need to rename one of them.

Upvotes: 3

Related Questions