C/C++中函数指针与回调函数

本文介绍了C/C++中的函数指针和回调函数。首先,详细讲解了函数指针的定义、如何通过函数指针调用函数以及函数指针的匹配规则。接着,探讨了回调函数的概念,指出回调函数是通过函数指针调用的,并强调了其在提供统一接口和实现业务隔离方面的意义。最后,通过示例展示了回调函数在实际应用中的作用,如在线程创建中的应用。
摘要由CSDN通过智能技术生成

1.函数指针

(1)函数指针的定义

函数:完成某一个特定功能的代码块;

指针:它是一种特殊的变量,用来保存地址值,指针是有类型的,某类型的指针指向某类型的地址

函数指针:顾名思义,通过一个指针指向一个函数的地址

定义格式:返回值 (*指针名)(参数列表);

比如:

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

这段代码在编译生成后存储在代码区,而这段代码其实是可以取到地址,而其地址就是函数名。我们可以使用指针存储这个函数的地址—函数指针

对于上述函数的函数指针定义:

int (*p)(int,int)    //参数列表中可以写形参也可以不写
也可以写成
int (*)(int a, int b)

(2)通过函数指针去调用函数

直接像使用函数名一样使用函数指针来调用函数,即:

函数指针名(参数列表)

示例:

#include <stdio.h>

// 两个数相加
int add(int a, int b)
{
	return (a + b);
}

// 求平方
int square(int a)
{
	return (a*a);
}

int main()
{
	int(*p)(int, int);


	//printf("p未做赋值前 = %p\n", p
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值