函数指针定义方法

2024-02-25 07:38
文章标签 函数指针 定义方法

本文主要是介绍函数指针定义方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

转载自:https://blog.csdn.net/Believe_FEI/article/details/78681351

首先定义一个函数,方便进行调用

int Examples(int a,int b)  
{  return a+b;  
}

方法一:定义一个函数指针

/****************************************** 定义一个函数指针 返回值为:    int 名称为:      Examples_fp 参数为:      int a 和 int b 
*******************************************/  
int (*Examples_fp)(int a,int b);My_Examples_fp = Examples;//函数指针赋值  My_Examples_fp(1,2);//函数使用实例

方法二:定义一个函数指针类型

/****************************************** 定义一个函数指针类型 返回值为:    int 名称为:      Examples_p 参数为:      int a 和 int b 
*******************************************/  
typedef int (*Examples_p)(int a,int b);Examples_p My_Examples_p;//定义一个实体函数指针  My_Examples_p = Examples;//函数指针赋值  My_Examples_p(1,2);//函数使用实例

方法三:定一个函数类型

/****************************************** 定义一个函数指针类型 返回值为:    int 名称为:      Examples_p 参数为:      int a 和 int b 
*******************************************/  
typedef int (*Examples_p)(int a,int b);Examples_p My_Examples_p;//定义一个实体函数指针  My_Examples_p = Examples;//函数指针赋值  My_Examples_p(1,2);//函数使用实例

 通过typedef构建

//使用typedef给函数指针类型一个别名
//typedef没有定义新的类型,给已经有的类型起一个别名,减少输入
typedef int(*PADD)(int a, int b); //*类型, PADD存储函数地址
typedef void(*MEG)(char s[]);void main()
{PADD padd1 = add; //创建函数指针printf("%d",padd1(11,23));MEG meg1 = msg;meg1("心里的雨倾盆的下");getchar();
}

 我一般是这么做的:

利用typdef 为一个函数指针类型重命名,如:
typedef int (*FUNC_POINT)(void);
上面命名了一个类型FUNC_POINT,该类型是一个函数指针类型(该函数的返回值是int ,参数是void)
那么现在就可以用FUNC_POINT来定义同类型的函数指针了,比如
FUNC_POINT func.
我们可以对它赋值,如:
int test(void) {}
func = test;
也可以对它进行执行操作
func();

下面的实例函数指针 .

#include<stdio.h>//返回值  函数名(形参)
//{
//	函数体
//}
void ssort(int buf[],int ilen)
{printf("函数\n");
}
//通过function来调用指定的排序函数
void function(void (*pfun)(int*,int),int buf[],int ilen)
{pfun(buf,ilen);
}int main()
{
//定义函数指针:void (*pfun)(int*,int)=NULL;pfun=ssort;int buf[10];	
//调用functionfunction(ssort,buf,9);return 0;
}

 

这篇关于函数指针定义方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/744813

相关文章

C语言函数指针----笛风读书笔记系列

读书笔记系列之:C语言函数指针                                                                               笛风                                                                               2013.10.8 一、函数指针的定义 顾

JS类的定义方法

在js中,类其实就是一个方法。 function oUser(){//相当于高级语言中的 publicthis.sName="zhangsan";this.iAge=26;}var oU1=new oUser();alert(oU1.sName);可以正常打印oU1.sName. function oUser() {//相当于高级语言中的 publicthis.sName

期末复习----函数指针排序p[j]==*(p+i) p[j+1]==*(p+j)

利用数组: 利用指针怎么引用? 注意:*(p+i)是前一个数------p[ j ]           *(p+j)是后一个数-------p[ j+1 ]  有所区别的另一种排序   下面这样是不合法的: 正确的:记住交换的是结构体中的整体而非单个score               注意定义temp应该是struct stu类型的而

Error: L6218E: Undefined symbol, 定义--cpp11之后 C函数指针和C++不兼容问题

当我们在定义函数中采用函数指针作为参数时, 头文件(,h文件)中, 使用如下代码: #ifdef __cplusplusextern "C"{#endif //ESP_Error_t esp8266_sendcmd(const char* cmd, const char* response, uint8_t (*cmd_function)(ESP_MSG_LIST));#ifdef __cp

c语言 指针函数 函数指针

(1)指针函数其实就是一个简称,是指带指针的函数,它本质是一个函数,只是返回值是某种类型的指针:                                                  类型标识符 *函数名 (参数表) (2)函数指针,本质上就是一个指针。只是它指向的不是一般的变量,而是一个函数。因为每一个函数都有一个入口地址,函数指针指向的就是函数的入口地址。格式:

rust函数指针和闭包异同探索随笔

//rust需要在编译时确定某个类型的值究竟会占据多少内存,而且同一类型的所有值都必须使用相同大小的内存,否则编译无法进行。 //对于DST动态大小类型在编译器期间无法得知其确切大小,所以直接定义此种类型的变量,rust编译无法通过! //那么如何应对?基本上采用:引用、智能指针、impl等方式即可解决。 //rust函数是一等公民,当然可以作为参数传递存储返回。 //rust函数指针fn

函数指针的使用是否必须需要加符号?

在C或C++等编程语言中,函数指针是一种特殊的指针类型,它用来指向一个函数。使用函数指针时,通常不需要在函数名后面加 & 符号。函数指针的声明和使用通常遵循以下规则: 1.声明函数指针:声明一个函数指针时,需要指定它指向的函数的返回类型、参数列表以及函数名。例如: int (*functionPtr)(int, int); 2.初始化函数指针:将函数指针初始化为指向一个具体的函数时,直接使用

固定高度div,随内容自动变高css定义方法

*{ font-size:12px; margin:0; padding:0;}方法1:#testBox{border:1px solid #cccccc;padding:5px;width:220px;min-height:100px; /*高度最小值设置为:100px*/height:auto !important; /*兼容FF,IE7也支持 !important标签*/height:100

从函数指针到回调函数

函数指针:指向函数的指针,某个函数指针表示指向某一类型函数的指针。 我们知道,指针类型有整型、浮点型、字符型等,现在又加了一种类型:函数型; 浮点型指针就叫浮点指针,那么函数型指针就叫函数指针; 我们既然可以把浮点指针当做函数的传递参数,那么自然也可以把函数指针当做函数的传参,函数A在其传参中带有函数指针类型一般是为回调函数做准备的,在调用函数A时被传递进去的函数(如B)我们一般称之为回调函

函数指针 和 指针函数

函数指针:指向函数的指针,类型是指针,指向的对象是函数 指针函数:返回指针的函数,本质是函数,返回的对象是指针 函数指针定义形式:  type  (*ponitername) (paraments list)              例子:int  (*pf)  (int  ,int )--------pf为指向返回值为int型,含有两个整形参数  的函数 指针函数定义形式: ty