C++的函数指针和宏定义——define、typedefine

本文介绍了C++中的函数指针概念,通过实例展示了如何声明和使用函数指针,以及如何通过指针数组管理一组功能类似的函数。此外,文章还探讨了`define`和`typedef`的区别,强调`typedef`在声明类型别名时的常见应用。

函数指针初步

先引用一下《C++ Primer Plus 》中对函数指针的介绍:“与数据项类似,函数也有地址。函数的地址是存储其机器语言代码的内存的开始地址。”一般而言我们不关心函数代码的地址,而专注于函数的具体实现,但是在看px4原生固件启动代码文件中,我发现代码中会用函数指针来对定义的宏(nsh_main入口函数)格式进行限制,所以专门看了函数指针这一块。如果不是直接调用函数,而是通过使用函数指针的方式,我们需要做三步:


 1. 获取函数的地址
 2. 声明一个函数指针
 3. 使用函数指针来调用函数

需要注意的是,和数组类似,函数名实际上就是函数的地址,看下面的例子:

process(think)
process(think())

这里面第一个是调用think函数,因为函数名就是地址,是通过函数指针方式调用函数,而第二个process(think())则是以think函数的返回值作为process()的参数的,现在如果我们要怎么声明一个函数指针呢?很简单,见下面:

double pam(int);//prototype
double (*pf)(int);//function pointer
pf=pam

上面就将pf指向了pam()函数,为此我写了一个简单的Hello World!来看一下函数指针的效果:

#include <iostream>

using namespace std;

void PRIN();
void INVOKE(vo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小方爱自律

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值