Coding沙龙之巧用typedef

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}, 
{event
2, event2_fun1, event2_fun2}, 
{event
3, event3_fun1, event3_fun2}, 
{event
4, event5_fun1, event4_fun2}, 
{event
5, event6_fun1, event5_fun2},  

}

4、处理

    只需要根据具体的事件调用对应的处理函数即可 

     eventFunTbl[eventType].fun1(18,  22);


状态机驱动函数表详见我的另外一篇博文:Coding沙龙之状态机实现 





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值