表驱动的代码实现

转载 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;
  
}


 

串口驱动程序的java代码实现

  • 2008年09月04日 14:59
  • 1KB
  • 下载

java代码实现JDBC连接MySql以及引用驱动程序包

JDBC连接MySql以及引用驱动程序包

SDRAM驱动篇之简易SDRAM控制器的verilog代码实现

在Kevin写的上一篇博文《SDRAM理论篇之基础知识及操作时序》中,已经把SDRAM工作的基本原理和SDRAM初始化、读、写及自动刷新操作的时序讲清楚了,在这一片博文中,Kevin来根据在上一篇博文...
  • eydwyz
  • eydwyz
  • 2016年10月27日 14:47
  • 2015

代码实现利用inf文件安装硬件驱动

代码参考了网上资料并进行了整理: #include "stdafx.h" #include // Make all functions UNICODE safe. #include // f...

Window XP驱动开发(十七) 芯片固件程序设计 (代码实现,针对USB2.0 芯片CY7C68013A)

转载请标明是引用于 http://blog.csdn.net/chenyujing1234  欢迎大家拍砖!   在我的文章:http://blog.csdn.net/chenyujing123...

Window XP驱动开发(十七) 芯片固件程序设计 (代码实现,针对USB2.0 芯片CY7C68013A)

转载引用于 http://blog.csdn.net/chenyujing1234  一、固件的修改 修改是基于CYPRESS官方提供的固件工程Bulkloop基础上。(获得方...

线性表c代码实现

  • 2017年10月22日 15:53
  • 780KB
  • 下载

链表c代码实现

  • 2017年10月22日 15:55
  • 783KB
  • 下载

Window XP驱动开发(十四) 驱动应用程序端代码实现(针对USB2.0 芯片CY7C68013A,基于CyAPI.lib与Bulkloop固件)

转载请标明是引用于 http://blog.csdn.net/chenyujing1234  欢迎大家提出意见,一起讨论! 需要源码的可以与我联系.   在我的一篇文章    Window X...

单表置换密码的C++代码实现

  • 2015年11月26日 09:50
  • 123KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:表驱动的代码实现
举报原因:
原因补充:

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