表驱动的代码实现

转载 2013年12月03日 10:46:21

1、在程序开发中,表驱动可以帮助我们来优化复杂的if-elseif -esle的结构,下面上代码

#include <stdio.h>
#include <stdlib.h>

/*加法*/
int Sum( int a, int b )
{
    return a + b;
}

/*减法*/
int Sub( int a, int b )
{
    return a - b;
}

/*乘法*/
int Multi( int a, int b )
{
    return a * b;
}

/*除法*/
int Division( int a, int b )
{
    return ( b == 0 ) ? 0 : (a / b);
}

/*定义函数指针*/
typedef int ( *pfFun )( int, int );

/*操作码*/
typedef enum _ENOPCODE
{
    OPCODE_ADD = 0,   /*加*/
    OPCODE_SUB,       /*减*/
    OPCODE_MULTI,     /*乘*/
    OPCODE_DIVISION,  /*除*/
    OPCODE_BUTT
}enOpCode;

/*使用驱动表计算*/
int GetOpResultByTable( int a, int b, enOpCode enOp )
{
    if ( OPCODE_BUTT == enOp )
    {
       return -1;
    }
    pfFun pf[ OPCODE_BUTT ] = { Sum, Sub, Multi, Division };
    return pf[ enOp ]( a, b );
   
}

int main( int argc, char *argv[] )
{
  int iTmp = 0;
  int a = 20;
  int b = 30;

  iTmp = GetOpResultByTable( a, b, OPCODE_ADD );
  printf( "Tmp is: %d\n", iTmp ); 
  return 0;
  
}


 

连表查询之驱动表

联表查询注意谁是驱动表&你搞不清楚谁join谁更好时请放手让mysql自行判定   写在前面的话:    不要求每个人一定理解 联表查询(join/left join/inner join等)时的m...
  • gmgmyxx
  • gmgmyxx
  • 2017年01月16日 10:37
  • 1914

驱动表选择

在提到SQL语句的执行计划时,我们常常提到驱动表,那么,什么是驱动表,驱动表一定是表吗?所谓驱动表,又称为外层表,就是在嵌套循环连接和哈希连接中,用来最先获得数据,并以此表的数据为依据,逐步获得其他表...
  • ys_565137671
  • ys_565137671
  • 2011年04月25日 15:13
  • 5565

C++的表驱动法

C++的表驱动法 目的:使用表驱动法,替换复杂的if/else和switch/case语句。  一、常用示例  以switch为例,常用示例如下: Funcition() { ...
  • zhouyulu
  • zhouyulu
  • 2011年10月10日 22:46
  • 3211

oracle驱动表以及如何确定驱动表

驱动表普遍认为是由SQL语句的写法决定的,简单的说,就是FROM语句后面的表列表中的最后一个。由于SQL语句是从后向前进行分析,Oracle会根据FROM语句从后到前将各个表依次连接起来。 SQ...
  • sinat_19628145
  • sinat_19628145
  • 2016年03月20日 21:03
  • 2769

表驱动开发优点

表驱动方法2009-08-01 13:46表驱动方法1:什么是表驱动法.     表驱动法是一种编程模式(Scheme),从表里面查找信息而不使用逻辑语句(if 和case)它的好处是消除代码里面到处...
  • lxzo123
  • lxzo123
  • 2010年09月03日 22:53
  • 1059

JK触发器驱动表

  • gtkknd
  • gtkknd
  • 2016年05月25日 12:29
  • 492

C语言中的表驱动实例

最近在一个blog中看到说表驱动编程,想到在项目中也用到了很多关于表驱动的用法,就想记录下来。也好供其他未用过的朋友做个参考。 现在很多手机类终端,都有一些待机界面的暗码处理, 比如查看IM...
  • dainiao01
  • dainiao01
  • 2011年11月23日 10:58
  • 2154

Nexted-loop join中小表驱动大表的原因分析

nexted-loop join: outer_iterator = SELECT A.xx,A.c FROM A WHERE A.xx IN (5,6); outer_row = outer_i...
  • light_language
  • light_language
  • 2017年07月31日 20:53
  • 359

(七)判定表驱动法

2.1  判定表了解 1)定义: 判定表也称决策表,是分析和表达逻辑条件下执行不同操作的情况下的工具。它能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏,设计出完成的测试用例集合。 ...
  • liangfengchang
  • liangfengchang
  • 2015年04月14日 14:41
  • 963

Hash Join 一定是选择小表作为驱动表吗

今天下午,群里面有人讨论HASH JOIN,选择驱动表的问题,我回答是 选择返回结果集小的表作为驱动表,而有些同志不同意,他们认为Oracle一定会选择小表作为驱动表,为了弄明白我以前是否理解错误,现...
  • robinson1988
  • robinson1988
  • 2010年03月18日 21:54
  • 4889
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:表驱动的代码实现
举报原因:
原因补充:

(最多只允许输入30个字)