![](/img/trans.png)
[英]Warning C4047 : '=': 'int' differs in levels of indirection from 'int *'
[英]differs in levels of indirection from 'int ()' (C)
這段代碼給了我這個錯誤,我不明白。 我甚至無法運行該程序。 你能幫我修一下這個錯誤嗎? 如果您對代碼中沒有任何理解,請說出來。
error C2040: 'CancelarPedido' : 'ppedido (ppedido)'
的間接級別與'int()'不同
printf("\nIntroduza opcao:");
scanf("%d",&opc);
switch(opc){
case 1: lista = NovoPedido(lista);break;
case 2: lista = CancelarPedido(lista);break;
case 3: printf("Falta implementar a funcao.");break;
case 4: printf("Falta implementar a funcao.");break;
}
}while(opc!=5);
return lista;
}
ppedido CancelarPedido(ppedido lista)
{
ppedido actual, anterior = NULL;
char id[5];
actual = lista;
if(lista == NULL)
printf("\nNao ha pedidos na fila de espera...");
else
{
printf("\nIntroduza o ID do pedido que pretende cancelar: ");
scanf("%s", id);
while(actual != NULL && ((strcmp(actual->id, id)) != 0)){
anterior = actual;
actual = actual->prox;
}
if(actual == NULL){
printf("\nERRO - Nao existe nenhum pedido com o ID introduzido.");
return lista;
}
if(anterior == NULL){
lista = actual->prox;
printf("\nPedido cancelado com sucesso...");
}
else{
anterior->prox = actual->prox;
printf("\nPedido cancelado com sucesso...");
}
free(actual);
return lista;
}
}
在聲明之前,您正在調用CancelarPedido。 您需要重新排序代碼或為CancelarPedido添加前向聲明。
如果沒有在范圍內聲明CancelarPedido,則默認為int CancelarPedido()。 您收到錯誤消息,因為lista被聲明為指針,但CancelarPedido被聲明為返回int。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.