如果我们要定义一个返回指针类型的函数指针呢?
int *(*p)(LNode *node,int data);//定义一个
函数指针,该函数指针带有LNode指针类型和int类型的两个形参,并且返回
int指针类型的值。
总结:定义函数指针即int/void/char/int*/struct/struct*+(*name)+(形参列表);
那么正题来了。如何在结构体中实现部分面向对象的功能呢?很简单。在结构体中定义函数指针。然后在指向对应函数。最后进行调用就OK啦。
例:
typedef struct{
int *elem;
int (*Del)(int *elem);
}Node;
初始化:
int flag;//表示函数返回状态
int arr[]={1,2,3};
Node node;
node={arr,delet};//结构体函数指针初始化。
flag=node.Del(node.elem);//调用结构体中定义的函数指针。
本次内容就到此为止了。