C中的函数指针的用法

include<stdio.h>

typedef int (*Cal)(int a,int b);//定义一个函数指针,第一个int是指向函数的返回值的类型,后面括号里面的两个int是指指向函数的参数类型
int Add(int a ,int b)
{
    int result=a+b;
    return result;
}
int Sub(int a ,int b)
{
    int result=a-b;
    return result;
}
int main()
{
    Cal cal1=&Add;//声明一个Cal的指针变量,指向Add函数的地址
    Cal cal2=&Sub;//声明一个Cal的指针变量,指向Sub函数的地址

    int a=100;
    int b=100;
    int result1=cal1(a,b);//直接传入实参到函数指针中
    int result2=cal2(a,b);
    printf("%d,%d",result1,result2);
    getchar();
}

原文地址:https://www.cnblogs.com/1521681359qqcom/p/11212796.html

时间: 2024-10-13 05:34:22

C中的函数指针的用法的相关文章

C中函数指针的用法

理解了C中的声明和指针的话题后再来看函数指针的用法就很容易了. C中函数指针主要有两个用途: 1.作为参数传递给另外一个函数(即作为回调函数) 2.转换表(jump table) 下面分别来介绍作为回调函数的用法和作为转换表的用法 1.回调函数 在链表的查找中使查找函数与类型无关 /*在一个单链表中查找一个指定值的函数.它的参数是一个指向链表第一个节点的指针 * 一个指向我们需要查找的值的指针和一个函数指针,它所指向的函数用于比较存储于链表中的类型的值*/ #include <stdio.h>

C++成员函数指针错误用法警示(成员函数指针与高性能的C++委托,三篇),附好多评论

今天做一个成绩管理系统的并发引擎,用Qt做的,仿照QtConcurrent搞了个模板基类.这里为了隐藏细节,隔离变化,把并发的东西全部包含在模板基类中.子类只需注册需要并发执行的入口函数即可在单独线程中执行.最终目标是,继承的业务逻辑类外部调用时有两个接口可选,调用syncRun同步执行:调用由引擎自动生成的asyncRun就异步执行.最终自动生成asyncRun的模板基类没能实现,主要原因是mingw对this处理的太有问题了!!原本以为编译器问题,后来才知道成员函数指针和this指针如此特殊

结构体中定义函数指针

转自:http://blog.csdn.net/unix21/article/details/9293877 结构体指针变量的定义,定义结构体变量的一般形式如下: 形式1:先定义结构体类型,再定义变量 struct结构体标识符 { 成员变量列表;… }; struct 结构体标识符 *指针变量名; 变量初始化一:struct结构体标识符 变量名={初始化值1,初始化值2,…, 初始化值n }; 形式2:在定义类型的同时定义变量 struct结构体标识符 { 成员变量列表;… } *指针变量名;

C语言结构体中的函数指针

这篇文章简单的叙述一下函数指针在结构体中的应用,为后面的一系列文章打下基础 本文地址:http://www.cnblogs.com/archimedes/p/function-pointer-in-c-struct.html,转载请注明源地址. 引言 指针是C语言的重要组成部分, 于是深入理解指针并且高效地使用指针可以使程序员写出更加老练的程序.我们要记住指针是一个指向内存地址的变量.指针可以引用如int.char……常见的数据类型,例如: int * intptr; // 声明一个指向整型值的

C++中传送函数指针

函数指针是一种非常好的类型.因此,可以编写一个函数,它的一个参数是函数指针.然后,在(外部)函数使用其函数指针参数时,就间接地调用在调用函数时对应参数指向的函数. 由于指针在不同的情况下可以指向不同的函数,因此允许调用程序确定要从外部函数中调用哪个函数. 在用函数指针类型的参数调用函数时,参数可以只包含函数地址的相应类型的指针.还可以把函数名作为参数,显示传送函数.作为参数传送给另一个函数的函数有时称为回调函数. 示例: #include <iostream> using std::cout;

C++中使用函数指针 【瓦特芯笔记】

     在C++类中使用函数指针. 类型定义:      typedef 返回类型(类名::*新类型)(参数表) //类定义 class CA { public: char lcFun(int a) { return; } };      CA ca;      typedef char (CA::*PTRFUN)(int);      PTRFUN pFun;     void main()     {        pFun = CA::lcFun;        ca.(*pFun)(2

1、C语言中的函数指针

一 通常的函数调用 1 void MyFun(int x); //此处的申明也可写成:void MyFun( int ); 2 3 int main(int argc, char* argv[]) 4 { 5 MyFun(10); //这里是调用MyFun(10);函数 6 7 return 0; 8 } 9 10 void MyFun(int x) //这里定义一个MyFun函数 11 { 12 printf("%d\n",x); 13 } 这个MyFun函数是一个无返回值的函数,它

函数指针的用法

函数指针试吃由于函数地址的指针.针织能够指向函数对于C/C++来说很重要也很有用,这为我们编译时未确定的顺序呢执行函数提供了另一种选择,而不需要使用条件语句. 1.声明函数指针 void (*foo)(); int (*f1)(double);//传入double,返回int void (*f2)(char*);//传入char*指针,没有返回值 double* (*f3)(int,int);//返回double指针 如果去掉第一对括号就成了返回 void* 的函数了! 下面的例子就是返回指针的

C++中的函数指针

时间:2014.06.14 地点:基地 ------------------------------------------------------------------------------- 一.函数指针简介 函数指针指向的是一个函数,而不是一个对象.但函数指针也和其他普通指针一样,指向特定的函数类型,函数的类型由返回类型和形参类型共同决定,与函数名无关,就像和变量名无关一样.比如: bool LengthCompare(const string&,const string& );