C++中函数指针数组的使用

C++中函数指针数组的使用,第1张

C++中函数指针数组的使用,第2张

考试编辑器整理C++编程知识。

在开发一个软件的过程中,我遇到了这样一个问题。前一个模块发给我二进制数据,输入参数是char* buffer和int length。Buffer是数据的第一个地址,length表示这批数据的长度。数据的特点是:长度不定,类型不定。第一个字节(buffer[0])标识数据的类型,总共有256(28)种可能性。


我的任务是处理每一种可能的数据类型,我的模块包含几个函数,每个函数都需要类似的处理。根据通常的做法,将编写以下代码:

void my function(char * buffer,int length)

{ _ _ int 8 nstream type = buffer[0];

开关(nStreamType)

{案例0:

函数1();

打破;

案例1:

......

案例255:

函数255();

打破;

}

如果我这样写,我的每个函数都要做那么多判断,写出来的代码一定很长,而且每次处理都要做很多判断才能找到正确的处理函数,代码的执行效率不高。针对以上问题,我想到了用函数指针数组来解决这个问题。

指针的概念在谭浩强老师的经典课程《C语言程序设计》中已经提到过,但大多数情况下我们无法使用它,忽略了它的存在。函数名实际上是指向函数入口地址的指针,但不同于int*和double*等普通指针。参见下面的例子来理解函数指针的概念:

1 int function(int x,int y);

2空干管(空)

{

3 int (*fun) ( int x,int y);

4 int a = 10,b = 20

5函数(a,b);

6乐趣=功能;

7 (*fun)( a,b);

8 ……

}

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » C++中函数指针数组的使用

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情