0

我正在尝试将 Matrix*partiklar 添加到我的 update_boids 函数中,以便我可以使用之前在主函数中保存在结构中的值。我正在抨击这个错误,因为我不明白它来自哪里。你能帮我理解如何解决这个问题吗?

我对 C 很陌生,并且正在使用 gcc 和我的机器上安装的 SDL 库来获取图形。

我得到这个编译器错误:

main.c: In function ‘main’: main.c:123:20: error: expected expression before ‘Matrix’ make: *** [main] Error 1

这指向这些代码行:

update_boids(Matrix *partiklar);

矩阵定义如下:

typedef struct Matrix
{
  double MatX;
  double MatY;   
  double MatZ; 
} Matrix;

并且特别喜欢:

Matrix partiklar[NR_BIRDS];   
Matrix hastighet[NR_BIRDS];   
Matrix *p[NR_BIRDS];   
Matrix *v[NR_BIRDS]; 
int t = 0;
   while(t<NR_BIRDS)   
{     
partiklar[t].MatX = rand()%100;     
partiklar[t].MatY = rand()%100;     
partiklar[t].MatZ = rand()%100;     
p[t] = &partiklar[t]; 

hastighet[t].MatX = rand()%10;     
hastighet[t].MatY = rand()%10;     
hastighet[t].MatZ = rand()%10;     
v[t] = &hastighet[t];      

/*printf("%f\n", partiklar[t].MatX);     
printf("%f\n", partiklar[t].MatY);     
printf("%f\n", partiklar[t].MatZ);    */
t++;   
}
4

1 回答 1

1

错误指向的行看起来像一个函数原型,其隐式返回类型为 int。如果它是一个函数 CALL,那么你需要去掉类型(编译器已经从声明 partiklar 的地方知道它)。

于 2013-10-15T11:02:35.557 回答