簡體   English   中英

與'int()'(C)的間接等級不同

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM