谁能给我讲讲下面这段代码中的宏定义部分
#include <stdio.h>
typedef int (*cli_func)(int m,int a,int b);
#define CLI_DEAL_FUNC(x) int cli_##x##_deal(int m,int a,int b)
#define CLI_DEAL_FUNC_DATA(x) cli_##x##_deal
typedef struct {
int m;
cli_func cli_func_pt;
}module_del_fun;
CLI_DEAL_FUNC(add);
CLI_DEAL_FUNC(del);
module_del_fun module_del_fun_t[] = {
{1,CLI_DEAL_FUNC_DATA(add)},\
{2,CLI_DEAL_FUNC_DATA(del)}\
};
CLI_DEAL_FUNC(add){
int c = a+b;
printf("---%d---\n",m);
return c;
}
CLI_DEAL_FUNC(del){
int c = a-b;
printf("---%d---\n",m);
return c;
}
int main()
{
int i = 0;
int ret = 0;
for(i = 0;i<sizeof(module_del_fun_t)/sizeof(module_del_fun_t[0]);i++)
{
ret = module_del_fun_t[i].cli_func_pt(module_del_fun_t[i].m,100,20);
printf("%d\n",ret);
}
return 0;
}