C语言函数指针与转移表的用法技巧

原创 2013年12月05日 14:42:05

1.函数指针与转移表

Switch(oper)

{

       Case ADD:

                     Result=add(op1,op2);break;

       Case sub:

                     Result=sub(op1,op2);break;

       Case mul:

                     Result=mul(op1,op2);break;

       Case div:

                     Result=div(op1,op2);break;

 

}

当功能太多时,这条switch语句太长,因此不是一种好的编程风格。好的设计理念应该是把具体的操作和和选择操作的代码分开。转换表就是一个函数指针数组。

       创建一个转换表需要两步。首先应该初始化一个函数指针数组。注意函数的原型应该出现在这个数组的声明之前。

       Double add(double,double);

       Double sub(double,double);

Double mul(double,double);

Double div(double,double);

Double(*oper_func[])(double,double)={add,sub,mul,div};

初始化列表中的各个函数名的正确顺序取决于程序中用于表示每个操作符的整型代码。

所以用一条语句就可以代替switch语句

Result=oper_func[oper](op1,op2);oper从数组中选取正确的函数指针,而函数调用操作符号将执行这个函数。

函数指针与转移表

0条评论 Switch(oper) {        Case ADD:                      Result=add(op1,op2);brea...

C语言(回调函数与转移表)

在说回调函数与转移表之前,先看下什么叫做函数指针~ 首先看两个非法的函数声明: int fun()[];/***1***/ int fun[]();/***2***/ 首先看第一个声明,函数的...

C语言中,函数指针数组的用途:转移表

计算器的实现: 方法一:#include int add(int a, int b) { return a + b; } int sub(int a, int b) { return a - b;...

C语言函数指针的几种用法【转】+gyy修改

C语言函数指针的几种用法---gyy修改后 程序如下: #include #include   /*--指针的应用都在主函数里,前面都是准备工作--*/   /*----------...

C语言学习笔记(21) 函数指针、回调函数及复杂指针阅读技巧

摘要:总结了函数类型的本质,回调函数的思想,以及负责指针阅读技巧右左法则。 一、函数类型     1.C语言中的函数也有自己的类型,就像数组一样。     2.C语言中国的函数的类型由函...

C语言函数指针

  • 2012年10月07日 13:19
  • 15KB
  • 下载

C语言函数指针

  • 2013年07月14日 23:23
  • 25KB
  • 下载

C语言结构体及typedef关键字定义结构体别名和函数指针的应用

结构体(struct)的初始化 struct autonlist { char *symbol; struct nlist nl[...

C语言函数指针.doc

  • 2015年08月04日 11:36
  • 35KB
  • 下载

c语言函数指针

  • 2015年10月10日 09:15
  • 33KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C语言函数指针与转移表的用法技巧
举报原因:
原因补充:

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