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从数组中选取正确的函数指针,而函数调用操作符号将执行这个函数。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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

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

C语言函数指针

  • 2012-10-07 13:19
  • 15KB
  • 下载

C语言函数指针

  • 2013-07-14 23:23
  • 25KB
  • 下载

C语言函数指针基础

转自:http://blog.jobbole.com/44639/ 函数指针虽然在语法上让人有些迷惑,但不失为一种有趣而强大的工具。本文将从C语言函数指针的基础开始介绍,再结合一些简单的用法和关于函...

C语言函数指针.doc

  • 2015-08-04 11:36
  • 35KB
  • 下载

c语言函数指针

  • 2015-10-10 09:15
  • 33KB
  • 下载

C语言结构体中定义函数指针详解

原创链接:http://blog.csdn.net/qq_21792169/article/details/50436089      在学习嵌入式我们经常和结构体函数指针打交道,还...

c语言 函数指针

彻底搞定C指针-函数名与函数指针(2005-10-14 23:35:00) 【收藏】 【评论】 【打印】 【关闭】  函数名与函数指针 一 通常的函数调用     一个通常的函数调...

C语言函数指针,结构体阶段总结

1.数组与函数 1)        数组元素作参数 large(int x, int y){...}; large(a[2], a[3]);   2)     ...

C语言 函数指针

c语言 函数指针
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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