C/C++技巧
+ -

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

2023-06-06 5 0

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

  1. union FUN
  2. {
  3. Void (*pFun)();
  4. Void (*pFun2)(int );
  5. bool(*pFun3)(int );
  6. };
  7. enum FUNTYPE
  8. {
  9. vv = 0,
  10. vi ,
  11. bi
  12. };
  13. typedef struct _PROCESS
  14. {
  15. FUNTYPE type;
  16. FUN pFun;
  17. } PROCESS;
  18. PROCESS process[] =
  19. {
  20. {vi,(FUN)fun},
  21. {vf, ,(FUN)fun1},
  22. {vi, ,(FUN)fun2},
  23. ...
  24. };
  25. For(int i=0,int Num=sizeof(process)/sizeof(process[0]);
  26. i<Num;i++)
  27. {
  28. switch(process[i].type)
  29. {
  30. case vv:
  31. process[i]. pFun();
  32. break;
  33. case vi:
  34. process[i]. pFun2(3);
  35. break;
  36. ...
  37. }
  38. }

0 篇笔记 写笔记

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

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

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