关于C函数指针的一个解答

转载 2006年05月19日 18:59:00
函数指针最大的用处在于它可以被一个模板方法调用,这是我在学java的设计模式时领悟到的.例如,有两个函数的流程结构完全一致,只是内部调用的具体函数不同,如下所示:
void func1()
{
         //一段流程代码和面向方面的代理,如安全检查,日志记录等
         int sum = add( x , y);
        //一段流程代码和面向方面的代理,如安全检查,日志记录等
}
void func2()
{
         //与func1完全相同的一段流程代码和面向方面的代理,如安全检查,日志记录等
         int difference = sub( x , y);
        //与func1完全相同的一段流程代码和面向方面的代理,如安全检查,日志记录等
}
那么,可以只定义一个函数,如下所示
void func(PFUNC p)
{
         //与func1完全相同的一段流程代码和面向方面的代理,如安全检查,日志记录等
         int difference = p( x , y);
        //与func1完全相同的一段流程代码和面向方面的代理,如安全检查,日志记录等
}
调用程序在调用时,让参数p分别指向add和sub函数就可以了.
对于其他题目的讲解,由于我目前写作和工作的重点已完全不在c语言方面了,也没有时间一一解答,就借用Jackie214发布的答案来回应大家.

相关文章推荐

一个关于extern"C"下函数指针行为的测试用例

本例测试在VS2008下extern "C" 对函数名以及函数指针的影响. //test.h #ifndef TEST_H #define TEST_H #include   #defi...
  • argpunk
  • argpunk
  • 2012年02月12日 15:05
  • 1160

作为一个c++而非c程序员,该弃函数指针投函数对象了

本文主要讲了一个例子,通过std/boost::bind/function将c风格的函数指针替换为c++风格的函数对象....

C_语言中函数指针的分析与应用

  • 2012年07月04日 16:37
  • 43KB
  • 下载

笔记_嵌入式Linux_C_函数指针

  • 2010年03月29日 14:31
  • 53KB
  • 下载

20150124 【 Linux-C 函数指针 】 模拟快速排序程序--快排

快排的特点就是通用性; 只要你提供比较函数 cmp 它就能对任何类型的数据进行排序。 大一的时候很不解这玩意的原理, 现在总于知道了————>函数指针。。。 所以就手敲了一遍。 一...

C/C++ 函数指针教程

  • 2010年09月29日 22:40
  • 137KB
  • 下载

Objective-C Block与函数指针比较、分析

今天从一个小例子开始对Objective-C里面函数指针和Block进行剖析。 函数指针是C语言里面就有的,而Objective-C是C的超集,对C语言作了很多扩展(这种扩展主要是依赖编译器和运行时系...

C/C++开发语言系列之---C++类成员函数指针

http://blog.csdn.net/maojudong/article/details/8194143
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于C函数指针的一个解答
举报原因:
原因补充:

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