C/C++技巧
+ -

C/C++技巧 公用体函数指针

2023-06-06 5 0

使用公用体函数存储函数的类型,使用一个枚举来传递函数的类型。这样结合for case等语法,可以巧妙地进行底层封装。
例如MFC的消息响应就是这样的,只是多了一个宏而已。

 union FUN
{
Void (*pFun)();
Void (*pFun2)(int );
bool(*pFun3)(int );
};

enum  FUNTYPE
{
    vv = 0,
    vi ,
    bi
};

typedef struct _PROCESS
{
     FUNTYPE type;
     FUN pFun;
} PROCESS;

PROCESS process[] = 
{
    {vi,(FUN)fun},
    {vf, ,(FUN)fun1},
    {vi, ,(FUN)fun2},
    ...
};

For(int i=0,int Num=sizeof(process)/sizeof(process[0]);
    i<Num;i++)
{
    switch(process[i].type)
    {
        case vv:
            process[i]. pFun();
            break;
        case vi:
            process[i]. pFun2(3);
            break;
        ...
    }
}

0 篇笔记 写笔记

C/C++技巧 公用体函数指针
使用公用体函数存储函数的类型,使用一个枚举来传递函数的类型。这样结合for case等语法,可以巧妙地进行底层封装。例如MFC的消息响应就是这样的,只是多了一个宏而已。 union FUN{Void (*pFun)();Void (*pFun2)(int );bool(*pFun3)(in......
作者信息
我爱内核
Windows驱动开发,网站开发
好好学习,天天向上。
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!