C++基础之函数指针

今天看到cocos2d中菜单按钮的源码用到函数指针,来解析一下用法

函数指针

本质:指针,变量

定义:void (*p)(int x);---------这个定义不完全准确,我们的目的是知道我们用的是什么,会用

看一下怎么定义

void Temp(int x){ int m = x;  }-----定义一个普通函数----我在main里写 Temp;----思考:这代表什么意思
汇编看不出来,不过我们写成void (*p)(int) = Temp看汇编

看到的结果是把函数的首地址放到指着p里-----p是指针----内容是函数的地址-----这就是函数指针的意义

至于定义:函数的返回值类型 (*//指针)(//参数)

注意:星星加括号,否则成了返回值为指针的普通函数

------有人会说和指针函数的区别(没有指针函数的概念,他们说的是返回值是指针的函数)

优点:可以调任意函数-------参考创建线程函数(详见C++晋升之多线程)

利:封装(想象一下,封装好一堆函数,用一个函数指针可以调,感觉起来很方便)

用法:一、普通调任意函数 二、和typedef结合为自定义类型

                         

三、函数指针数组 四、函数指针当参数

         

五、还有函数指针用来当返回值的,但是写法不太一样,有进一步的研究我再来补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值