https://blog.csdn.net/sunxiwang/article/details/78591557
1、函数指针的返回值类型必须相同
2、使用函数指针是为了调用不同函数
3、例题
Status Equal(ElemType a,ElemType b)
{
if(a==b) return TRUE;
else return FALSE;
}
int LocateElem(Link L,ElemType e,Status(*compare)(ElemType,ElemType))//在L中,有没有符合关系Status(*compare)(ElemType,ElemType)的元素e;
{
ElemType *p;//注意p的类型;
int i=1;
p=L.elem;
while(i<=L.length&&!(*compare)(*p++,e)) i++;
if(i<=L.length) return i;
else return 0;
}
Status ChaLink(Link A,Link B,Link &C)
{
C.elem=(ElemType*)malloc(LIST_INIT*sizeof(ElemType));//先分配空间;
if(!C.elem) exit(OVERFLOW);
C.length=0;
C.listsize=LIST_INIT;
for(int i=0;i<A.length;i++)
{
if(!LocateElem(B,A.elem[i],Equal))
InsertLinst(C,C.length+1,A.elem[i]);
}
return OK;
}