"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即可