函数指针
时间:2011-12-12
来源:互联网
对于函数指针比如定义一个函数指针fun_point,用一个已经定义的函数的函数名初始化它,用(*fun_point)(实参表)和fun_point(实参表)进行函数调用有什么不同吗?fun_point是一个函数指针然后用fun_point(实参表)不就是进行函数的调用了吗?为什么还要(*fun_point)(实参表)呢?可以详细的解释一下吗?谢谢
作者: gongheguoyingpai11 发布时间: 2011-12-12
fun_point();
与
(*fun_point)();
是等效的。这是规定,无须详细解释。
与
(*fun_point)();
是等效的。这是规定,无须详细解释。
作者: mingliang1212 发布时间: 2011-12-12
通过函数指针调用和通过函数名调用本质上都是一样的。用函数指针的一个好处是可以高效实现消息映射:
C/C++ code
一般来说,当需要根据某种信息来调用N个函数中的一个,并且这些函数具有相同原型,使用函数指针要比一大推if-else或switch-case方便。
C/C++ code
//针对某一类消息的回调函数 void func1() {..} void func2() {..} // ...还有func3, func4等等 typedef void (*Callback) (); void func(int i) { std::map<int, Callback> message_map; message_map[0] = func1; message_map[1] = func2; // 获取消息i,并根据消息i调用相关消息映射函数 message_map[i](); }
一般来说,当需要根据某种信息来调用N个函数中的一个,并且这些函数具有相同原型,使用函数指针要比一大推if-else或switch-case方便。
引用楼主 gongheguoyingpai11 的回复:
对于函数指针比如定义一个函数指针fun_point,用一个已经定义的函数的函数名初始化它,用(*fun_point)(实参表)和fun_point(实参表)进行函数调用有什么不同吗?fun_point是一个函数指针然后用fun_point(实参表)不就是进行函数的调用了吗?为什么还要(*fun_point)(实参表)呢?可以详细的解释一下吗?谢谢
对于函数指针比如定义一个函数指针fun_point,用一个已经定义的函数的函数名初始化它,用(*fun_point)(实参表)和fun_point(实参表)进行函数调用有什么不同吗?fun_point是一个函数指针然后用fun_point(实参表)不就是进行函数的调用了吗?为什么还要(*fun_point)(实参表)呢?可以详细的解释一下吗?谢谢
作者: tonywearme 发布时间: 2011-12-13
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28