函数指针以及成员函数指针1
来源:互联网 发布:initEvent js 编辑:程序博客网 时间:2024/06/05 21:11
1、 函数指针
(1)函数指针申明如下:
float (*my_func_ptr)(int, char *);// 为了更好地理解,强烈建议使用typedef声明.// 当函数指针是一个函数的参数时,容易造成混淆.//声明应该是typedef float (*MyFuncPtrType)(int, char *);MyFuncPtrType my_func_ptr;注:1) 函数指针参数组合不同,则函数指针类型也是不同的。2)函数调用约定(
__cdecl
, __stdcall
, and __fastcall
)不同,函数指针类型也是不同的。(2)函数指针my_func_ptr指向函数float some_func(int, char*) :
my_func_ptr = some_func;
(3)使用函数指针调用存储的函数 :
(*my_func_ptr)(7, "Arbitrary String");
(4)特性:
1)不同类型函数指针之间可以互相转换,但是函数指针不能转换为一个void*类型的数据指针。
2)函数指针能被赋值为0,以表示为一个空指针。
3)全范围的比较操作(==
, !=
, <
, >
, <=
, >=
)适用于函数指针,通过使用"== 0"或者隐式转换为bool类型来测试函数指针是否为空指针。
4)函数指针能够作为一个非类型模板参数,这与类型模板参数有根本性区别,也和整型非类型参数不同,它是基于名字而不是类型或者值来实例化的。(这个不是所有编译器支持)
(5)总结:
1)函数指针应用有:库函数qsort的参数,Windows回调函数等等。
2)函数指针仅仅是"code pointers",它表示一段汇编程序的开始地址。
3)不同类型函数指针存在的意义仅仅是为了确保使用了正确的调用约定。
0 0
- 函数指针以及成员函数指针1
- 函数指针以及成员函数指针2
- 函数指针以及成员函数指针_成员变量指针
- 函数指针 成员函数指针
- 数据指针、函数指针、成员函数指针
- 数据指针、函数指针、成员函数指针
- 成员函数指针以及C++委托
- C++ 常成员函数以及常指针
- 指向成员函数指针1
- 成员函数指针【转贴】
- 类成员函数指针
- 成员函数指针数组
- 成员函数 指针
- 类成员函数指针
- 类成员函数指针
- 成员函数的指针
- 成员函数指针数组
- 成员函数指针
- Android实用代码片段
- JAVA垃圾收集器之Serial Old收集器
- WIFILink智能配置WiFi技术 HI3518E 3516A
- asp程序初学者:VBScript写在哪里?
- Installing libevent on MAC OSX 10.6
- 函数指针以及成员函数指针1
- TCP/IP、Http、Socket的区别
- 如何选择app开发制作公司
- 结合Composer 新版本PHP的开发方式
- android利用Paint在Canvas实现竖排文字
- zookeeper分布式锁(七)
- android坐标
- 浅谈java的泛型
- Android Camera Preview ANativeWindow的处理