/*******************************************************
* INCLUDE
********************************************************/
# include <stdio.h>
/*******************************************************
* STRUCTURE
********************************************************/
typedef struct {
int (*func_name)(int,int);
int tag;
}FUNCSTRUCT;
/*******************************************************
* FUNCTION
********************************************************/
int goFunc( FUNCSTRUCT * gf,void * func_name){
gf->func_name = func_name;
gf->tag = 419;
return 0;
}
int fff1(int a,int b){
printf("%s\n",__FUNCTION__);
return a+b;
}
int fff2(int a,int b){
printf("%s\n",__FUNCTION__);
return a*b;
}
/*******************************************************
* MAIN
********************************************************/
int main(int argc, char ** argv){
FUNCSTRUCT gf;
goFunc(&gf,fff1);
printf("%d\n",gf.func_name(2,3));
printf("%d\n",gf.tag);
goFunc(&gf,fff2);
printf("%d\n",gf.func_name(2,3));
printf("%d\n",gf.tag);
return 0;
}
结果:
说明:
在这个结构体中:
typedef struct {
int (*func_name)(int,int);
int tag;
}FUNCSTRUCT;
其中的成员: