Coding沙龙之巧用typedef
来源:互联网 发布:网络语开挂是什么意思 编辑:程序博客网 时间:2024/06/05 02:35
typedef运用较多,网上已经有大量的使用举例,这里介绍几个特别的typedef使用,提高coding效率
一、文件内函数根据子功能划分
在一个.c文件中,一般存放的是同一类型的函数的集合,可以利用typedef进一步细分同一个文件中的不同子功能函数。
首先在公共头文件如下定义:
定义BW(也可以为具体模块名等)
#define BW(description) 1
使用示例:
#ifdef BW(" 功能1描述")
fun1_1
fun1_2
...
fun1_n
...
#endif
#ifdef BW(" 功能2描述")
fun2_1
fun2_2
...
fun2_n
...
#endif
在利用source insight编辑代码时,在Symbol Window下查看效果更明显
二、定义函数指针、事件驱动函数表、状态机驱动函数表
为了使得我们编写的代码更加简洁、逻辑更加清晰,熟悉C语言的开发人员常常喜欢使用注册表机制、事件驱动函数表、状态机驱动函数表等,而不是频繁使用if、else if、switch;
1、定义同一类型的函数指针
typedef void (*fun1)(int *, char *)
typedef void (*fun2)(int *, char *)
2、定义事件驱动函数表元素类型
typedef struct eventfuns
{
eventType;
fun1;
fun2;
}EVENT_FUNS
3、定义事件驱动函数表
EVENT_FUNS eventFunTbl[5] = {
{event1, event1_fun1, event1_fun2},
{event2, event2_fun1, event2_fun2},
{event3, event3_fun1, event3_fun2},
{event4, event5_fun1, event4_fun2},
{event5, event6_fun1, event5_fun2},
}
4、处理
只需要根据具体的事件调用对应的处理函数即可
eventFunTbl[eventType].fun1(18, 22);
状态机驱动函数表详见我的另外一篇博文:Coding沙龙之状态机实现
- Coding沙龙之巧用typedef
- Coding沙龙之模块分层
- Coding沙龙之英文单词缩写
- Coding沙龙之协议状态机实现
- Coding沙龙之运算符优先级
- Coding沙龙之0与‘0’与‘\0’与"0"与"\0"以及ASCII码
- Coding,设计之美
- coding之后端经验
- typedef巧用和注意事项
- 上海两天之行 参加技术沙龙
- 百度技术沙龙之2013-2&3
- C++学习之typedef
- typedef struct 之思考
- 补遗篇之typedef
- C++语言之typedef
- C++之typedef
- C语言之typedef
- C++之typedef 小记
- ubuntu14.04/16.04 下安装 caffe
- 点9图片入门
- Help Jimmy
- 对于一般的Mat如何进行赋值
- Android开发环境的搭建与HelloWorld
- Coding沙龙之巧用typedef
- Java-jdk的安装,Tomcat服务器的安装,在eclipse中添加JavaEE插件常见问题以及解决方法,步骤
- 用命令行连接MySQL数据库
- Android studio for Mac配置React-native时的坑
- QT 正则表达式 QRegExp 使用
- Aircrack-ng破解无线网络
- Android视图SurfaceView的实现原理分析
- centos 修改文件权限
- Drainage Ditches poj 1273 最大流