"void (*)(ElemType c)" 类型的实参与 "Status (*)(ElemType)" 类型的形参不兼容

写了一个遍历函数调用前面定义的 print()函数

报错信息:"void (*)(ElemType c)" 类型的实参与 "Status (*)(ElemType)" 类型的形参不兼容

ListTraverseBack(L, print);
void print(ElemType c)
{
    printf("%d ", c);
}
void ListTraverseBack(DuLinkList L, Status(*visit)(ElemType))
{// 由双链循环线性表L的头结点出发,逆序对每个数据元素调用函数visit()。 **** 新增 ****
    DuLinkList p = L->prior;    //p指向尾结点
    while (p!=L)    //p未指向头结点
    {
        visit(p->data);    //对p所指结点调用函数 visit()
        p = p->prior;    //p指向前一个结点
    }
    printf("\n");
}

报错原因:遍历函数 ListTraverse(xxxx, Status xxxx) 定义的形参是 Status,但是print()函数定义的时候定义的是 void,统一为void即可

posted @ 2020-09-22 21:43  中年二班  阅读(722)  评论(0编辑  收藏  举报