【代码大全】笔记-表驱动法

本文探讨了表驱动法作为一种编程模式,特别是在处理复杂逻辑和消息处理时的应用。通过对比传统的switch-case语句,展示了如何使用函数指针和表驱动法来优化代码结构,提高代码的可读性和可维护性。

[相关文章知识补充]

C语言命令模式

表驱动法 ( able-Driven Methods)

表驱动法是一种编程模式 (scheme)——从表里面查找信息而不使用逻辑语句(if 和
case)。事实上,凡是能通过逻辑语句来选择的事物,都可以通过查表来选择。对简单的情况而言,使用逻辑语句更为容易和直白。但随着逻辑链的越来越复杂,查表法也就愈发的显得具有吸引力。

函数指针在表驱动方法中的应用

函数指针在表驱动方法中的应用
在使用表驱动方法时需要说明的一个问题是,你将在表中存储些什么。

  • 在某些情况下,表查寻的结果是数据。如果是这种情况,你可以把数据存储在表中。
  • 在其它情况下,表查寻的结果是动作。在这种情况下,你可以把描述这一动作的代码存储在表中。
  • 在某些语言中,也可以把实现这一动作的子程序的调用存储在表中,也就是将函数的指针保存在表中,当查找到这项时,让程序用这个函数指针来调用相应的程序代码,这个就是函数指针在表驱动方法中的应用。

有过工作经验或者编程经验的人基本上都遇到过在一个函数里面处理事件,消息或者命令等逻辑行为。形式大概如下:

typedef enum msg_type_def
{
   
   
    MSG_TYPE_A,
    MSG_TYPE_B,
    MSG_TYPE_C,
}msg_type_t;

void do_process_MsgA(int argc, char* argv[])
{
   
   
    //todo something.
}

void do_process_MsgB(int argc, char* argv[])
{
   
   
    //todo something.
}
void do_process_MsgC(int argc, 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值