实现用函数名作实参的编程举例.

作者在 2007-11-15 08:29:00 发布以下内容

 

*/ --------------------------------------------------------------------------------------
*/ 出自: 快乐编程 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);
}

虽然没有什么技术含量,但有一些初学者并不知道有这样的方法.
因此,就在介绍一下了.以便让更多的人知道这样的方法,就达到了我的目的了.

我的C语言编程经验 | 阅读 3435 次
文章评论,共0条
游客请输入验证码