我在Unix中做一个C程序,模拟F1比赛。
我的结构中有一个问题,我无法识别该问题。
我的第一个结构:

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;

我的第二个结构:
typedef struct
{
int NumVoiture;
int TypeDeSeance;
DonneesPartagees * Voiture;
DonneesPartagees * Session;
DonneesPartagees * CompressionTemporelle; /* compression temporelle */
Voiture ** Rang; /* tableau de pointeurs */
} Containeur;

当我尝试使用该功能时出现问题:
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;
}

错误说明
expected declaration specifiers or '...' before 'Voiture'

当我在main()中调用“Voiture*Rang[NBVOITURES];”时出现第二个错误
'Rang' undeclared (first use in this function)

提前谢谢!

最佳答案

第一个typedef使Voiture成为类型的名称,但是在initContainer中,您试图使用Voiture作为参数的名称。显然,这会导致问题,您需要重命名其中一个。

关于c - 编译时出现意外错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17054276/

10-16 11:46