用函数指针数组简化switch-case跳转二维事件复杂度
来源:互联网 发布:增长率算法 编辑:程序博客网 时间:2024/06/08 06:47
在多任务程序中,多个任务之间采用消息队列来传递信息和交互,如果在任务循环中采用如下的跳转来操作,那么就会增加计算时间:
while(1){ state = get_message(); switch(state) { case RUN: do_something(); break; case STOP: do_anotherthing(); break; ...... }}
另一种做法,是用二维函数指针数组,列出所有处理函数对应的跳转条件,采用回调函数实现,采用函数指针,减少了计算case跳转的比较时间,所以可以提高速度,缺点是占用比较多的存储空间。采用何种方式来表达计算需求,取决于对速度还是空间占用的指标要求。
如下代码结构:typedef void (*pfunc)(void );pfunc state_list[MAX_EVENT][MAX_STATE_NUM] = { /*state1*/ /*state2*/ .../*event1*/ function1, function2 /*event2*/ function3, function4...}void function1() {...};void function2() {...};...
- 用函数指针数组简化switch-case跳转二维事件复杂度
- 用函数指针代替switch-case
- demo : 用宏简化大型switch/case - LoadStringW
- 【补习】二维数组,指针,函数
- 使用标准库和函数指针简化switch语句
- 如何用指向函数的指针替换switch-case
- 长switch-case改写为函数指针调用形式
- ********* 二维数组指针,指针字符串,指针函数,函数指针 *********
- 简化大型Switch的Case输入
- 对多个Linerlayout设置点击事件,并实现Activity的跳转。(用Switch简化多次设置点击事件的重复代码)
- 二维数组指针和函数参数
- 给函数传递二维数组指针
- 二维数组指针和函数参数
- 【补习】二维数组,指针和函数
- 用指针输出二维数组
- 用指针操作二维数组
- 用指针访问二维数组
- x86 switch-case 的地址跳转表
- barrett
- inkscape-- open clip art library
- 随手联系的一个滑动显示的工具框
- appengine project中 client和server之间实现数据的传递
- C++三级指针传址调用
- 用函数指针数组简化switch-case跳转二维事件复杂度
- Most common English technical English Papers
- OpenGL learn from today
- 操作系统页面置换算法
- MVC API 中如何应用Area
- GB28181测试软件以及代码
- copying text from vim to windows
- 线性单链表的实现和操作
- HDU 3117 Fibonacci Numbers