#include <stdio.h>
void print(int a, int b);
void print1(int a, int b);
void print2(int a, int b);
typedef void (*pfunc)(int a, int b);
typedef struct fun1
{
int type;
pfunc pfun1;
}bol_funbless;
bol_funbless gst_funbless_table[] = {
{1 ,print},
{2,print1},
{3,print2},
};
bol_funbless *getfun(int i)
{
int uiLoop = 0;
bol_funbless *temp = NULL;
for(;uiLoop<sizeof(gst_funbless_table);uiLoop++)
{ temp = &(gst_funbless_table[uiLoop]);
if (i == gst_funbless_table[uiLoop].type)
break;
}
return temp;
}
void func1(int type,bol_funbless *temp,int a, int b)
{
temp = getfun(type);
temp->pfun1(a,b);
}
int main()
{
bol_funbless *temp = NULL;
bol_funbless *temp1 = NULL;
func1(2,temp,1,4);
func1(1,temp,5,7);
}
void print(int a, int b)
{
printf("hello world!\n");
printf("%d\n",a+b);
}
void print1(int a, int b)
{
printf("睡你麻痹!\n");
printf("%d\n",a+b);
}
void print2(int a, int b)
{
printf("起来嗨!\n");
printf("%d\n",a+b);
}