c - 编译时出现意外错误

标签 c unix struct

我正在 Unix 中编写一个模拟 F1 比赛的 C 程序。 我的其中一个结构存在问题,我无法确定问题所在。

我的第一个结构:

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'

当我调用“Voiture * Rang[NBVOITURES];”时出现第二个错误在 main() 中

'Rang' undeclared (first use in this function)

提前致谢!

最佳答案

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

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

相关文章:

c - 在哪个阶段分配源端口?

linux - 在 ping 中使用 -m 选项

C 结构函数语法 - 传递元素,返回结构

c# - 结构中指针字段的大小

c - 尝试将字符串扫描到c中结构的2个不同元素

c - 为什么这个 fgets() 循环永远不会结束?

c - 使用模运算符 c 遍历数组

c - 如何从 ELF 文件中提取通过编译器优化添加的常量地址?

linux - 在 Bash 中将多个摄氏度值转换为华氏度

linux - bash 脚本中双引号的意外行为