嗨,每个人都有语言C的问题我无法解决这里是我的代码:
void demande_usine_stockage(entrepot *u_s,fournisseur f[],int *demande,delai_appro &d_a,delai_ass &d_ass,usine_ass *u_a,int *attente_stockage,int *attente_assemblage,int *debut_stockage,int *fin_stockage,int *debut_assemblage,int *fin_assemblage,int periode)
{
u_a->commande_en_souffrance += *demande;
u_a->niveau_stock=u_a->stock_physique - u_a->commande_en_souffrance;
if (u_a->niveau_stock >= *demande)
{
*debut_stockage=periode;
*fin_stockage=periode+u_a->L_assemblage;
stockage(u_s,demande,d_a,u_a,debut_stockage,fin_stockage,attente_stockage,periode);
}
else
{
*debut_stockage=periode+f[1].L;
*fin_stockage=(periode+u_a->L_assemblage+f[1].L);
stockage(u_s,demande,d_a,u_a,debut_stockage,fin_stockage,attente_stockage,periode);
demande_usine_assemblage(f,u_a,d_ass,demande,attente_assemblage,debut_assemblage,fin_assemblage,periode);
}
}
和délai_ass是一个链表 这是错误
430 G:\test1.cpp invalid initialization of reference of type 'delai_assemblage*&' from expression of type 'delai_assemblage'
答案 0 :(得分:1)
如果这是C,而不是C ++,则将文件重命名为.c
扩展名,而不是.cpp
。 C和C ++是两种不同的语言,您不应该将.cpp
文件编译为C代码。
您还需要删除所有引用类型(标识符前面带有&
的类型),因为C没有引用。例如:
void demande_usine_stockage(
entrepot *u_s,
fournisseur f[],
int *demande,
delai_appro *d_a, // Reference (&) changed to pointer (*)
delai_ass *d_ass, // Reference (&) changed to pointer (*)
usine_ass *u_a,
int *attente_stockage,
int *attente_assemblage,
int *debut_stockage,
int *fin_stockage,
int *debut_assemblage,
int *fin_assemblage,
int periode)
{
...
}
答案 1 :(得分:0)
看起来您传递的是delai_assemblage
类型的变量,其中指向delai_assemblage
的指针。我猜你在调用d_ass
函数的demande_usine_stockage
参数传递了这样的变量。