*/ --------------------------------------------------------------------------------------
*/ 出自: 快乐编程 http://hi.bccn.net/108519
*/ 作者: neverTheSame E-mail:zhaoxufeng9997@126.com QQ:475818502
*/ 时间: 2008-6-1
*/ 声明: 尊重作者劳动,转载请保留本段文字
*/ --------------------------------------------------------------------------------------
实现用函数名作实参的编程举例.
在介绍之前,先说明一下,用声明指向函数的指针的用法.
比如,一个这样的函数:int TestFuntion(int integer,int character); 怎么声明一个指针指向这样的函数.
我们可以这样做,int (*pTestFuntion)(int integer,int character);这样就声明了一个指向函数类型的指针.
这个函数返回值类型为int,有两个参数,一个是整型参数,一个是字符型参数.
就如下面的例子:
#include<stdio.h>
#include<conio.h>
int print(int integer,int character);
int main()
{
int (*p)(int,int);
p=print;
clrscr();
p(12,'A');
getch();
}
int print(int integer,int character)
{
printf("integer = %d\n",integer);
printf("character= %c\n",character);
}
我相信大家对声明一个指向函数的指针有一定的了解了.
那么把这样的指针作为函数的形参,就可以实现实参是一个函数名的.
比如:
void test(int (*p)(int,int),float fData);
这是一个有指向函数的指针作形参.
通过上面的例子理解以下的例子就不成问题了.
#include<stdio.h>
#include<conio.h>
int print(int integer,char character);
void test(int (*p)(int,char),float fData);
int main()
{
clrscr();
test(print,12.0);/*print为函数名*/
getch();
}
int print(int integer,char character)
{
printf("integer = %d\n",integer);
printf("character= %c\n",character);
}
void test(int (*p)(int,char),float fData)
{
p(1,'A');
printf("fData = %f\n",fData);
}
虽然没有什么技术含量,但有一些初学者并不知道有这样的方法.
因此,就在介绍一下了.以便让更多的人知道这样的方法,就达到了我的目的了.