函数指针的深入研究与应用分析.doc函数指针的深入研究与应用分析摘要:在根据不同条件选择执行不同函数的程序中,if-elseif-elses或者witch/case结构需要经过多次匹配且执彳亍效率较低。该文对函数指针进行深入分析与研究,提出了采用函数指针数组解决此类问题的观点,提高了程序的简洁性与效率。关键词:函数指针;数组;switch/case中图分类号:TP311文献标识码:A文章编号:1009-3044(2015)13-0230-ordingtodifferentconditions,thestructureofif-elseif-elseorswitch/,havebroughtforwardtheviewpointadoptthefunctionpointerarraytoresolvethiskindproblem,:functionpointer;array;switch/case在项目开发中经常会遇到根据不同条件选择不同函数的问题。例如项0屮需要调用各自的函数处理不同类别的信号,这些信号采用统一的编码表示。如:,编码的3-5位为0-9之间的数字,线性排列,分别表示不同种类的信号。后面五个字符标识该类别中的不同信号。在编程处理时,一般会想到采用if-elseif-else或者switch-case结构来处理[1]。但是当判断的条件较多时,程序就会变得冗长、复杂,•口•效率降低。本文研究采用函数指针解决此类问题,减少兀余代码,使得代码更为简洁、高效[2-3]。1函数指针C语言的函数在调用时会在内存中占用一段存储空间,这段存储空间有一个起始地址,这个起始地址称为函数的入口地址,即函数的指针[4]。在程序中,函数一般是通过函数名來调用的。与数组名类似,函数名也代表了函数的入口地址,是一个指针常量[5]。指针既然可以指向整型、字符型、数组等类型,当然也能指向一个函数。因此可以定义一个指针变量,让其值等于函数的入口地址,此指针变量即为指向函数指针变量[6],其存放的值即为函数指针。然后可以通过这个指针变量来调用该函数[7]o在C语言中,变量必须先定义后使用,指针变量也不例外[8]。函数指针变量的定义格式为:类型标识符(*指针变量名)([形参类型1,形参类型2,,形参类型n])[9]其中:类型标识符为指针变量所指向的函数的返回值类型。形参类型指的是函数指针所指向函数的形参的数据类型。若是函数没有形参,定义时可省略[10]O例如:int(*p)(int,int);本语句定义了一个指向函数的指针变量,此函数返回值类型为int类型,有两个int类型的参数[ll]o在初始化指针变量时,只需耍把函数名赋值给指针变量即可[12]。使用指针变量调用函数可以采用如下格式:(*指针变量名)(实参列表)[13]例如下列代码完成了一个函数指针变量的定义、初始化以及调用函数的过程:intmax(intx,inty){/*函数体*/}int
函数指针的深入研究与应用分析 来自淘豆网www.taodocs.com转载请标明出处.