首先定义一个函数指针:
typedef int (*Operation)(int a , int b );
再定义两个函数:
//a和b相加
int Add (int a, int b){
return a + b ;
}
//a和b相乘
int Multi (int a, int b){
return a * b ;
}
定义一个结构体:
typedef struct _str {
int result ; // 用来存储结果
Operation opt; // 函数指针
} STR;
写main函数,使用结构体
int main (int argc , char **argv){
STR str_obj;
str_obj.opt = Add; //函数指针变量指向Add函数
str_obj. result = str_obj.opt(5,3);
printf (" the result is %d\n", str_obj.result );
str_obj.opt= Multi; //函数指针变量指向Multi函数
str_obj. result = str_obj.opt(5,3);
printf (" the result is %d\n", str_obj.result );
return 0 ;
}