函数指针实现 switch功能

前提要求是:

switch ( state )

{

     case state1:

 

                        Fun1( parameter list)

     case state2 :

                        Fun2( parameter list)

 

}

要求处理函数的参数 是完全相同的

下面是使用函数指针的处理

void func1( int a);

void func2(int b);

首先

enum

{

    REAL_DATA_TYPE_FIRST,

    FUNC1,

    FUNC2,

    REAL_DATA_TYPE_LAST

}

定义 函数指针

typedef  void(*Func)(int a);

定义一个函数指针数组

Func  funs[REAL_DATA_TYPE_LAST];

上面完成了定义工作

重要的一步

利用宏定义 实现将函数指针复制到数组中

#define ADD_FUNC_MAP( t, func)  /  funs[t] = func 

             ADD_FUNC_MAP( FUNC1, &func1) ;

             ADD_FUNC_MAP( FUNC2, &func2) ;

使用时

 Func pFun = funs[i];//(i表示对函数的选择)

int a = 0;

        *pFun(a);

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值