/*
============================================================================
Name : func_table.c
Author :
Version :
Copyright : Your copyright notice
Description : Hello World in C, Ansi-style
============================================================================
*/
#include <stdio.h>
#include <string.h>
typedef void (*func_t)(char *,int);
typedef struct fun
{
char * type;
func_t func;
}func_table_t;
void hello(char *type,int num)
{
if(NULL != type)
{
printf("this is hello func,the num is %d \n",num);
}
}
void hi(char *type,int num)
{
if(NULL != type)
{
printf("this is hi func,the num is %d \n",num);
}
}
void unknown(char *type,int num)
{
if(NULL != type)
{
printf("this is unknown func,the num is %d \n",num);
}
}
func_table_t table[] =
{
{"hello",hello},
{"hi",hi},
{"unknown",unknown},
};
void my_func(char *type,int num)
{
int flag = 0;
int i = 0;
for(i=0;(i<sizeof(table)/sizeof(func_table_t))&&(flag==0);i++)
{
if(0 == strcmp(type,table[i].type))
{
flag = 1;
}
}
table[i - 1].func(type,num);
}
int main()
{
my_func("hello",2);
my_func("xxx",3);
return 0;
}
[C]func_table
最新推荐文章于 2021-10-22 17:08:29 发布