本帖最后由 zhendehaoren 于 2014-10-03 18:13 编辑 c++经常见到这样写法 struct T { int G(); }; c++里是不是就不需要函数指针了,c里面这样定义肯定是不行的
by zhendehaoren - C/C++ - 2014-10-06 09:40:44 阅读(1279) 回复(2)
函数指针是指向函数的指针变量 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上一致的。函数指针有两个用途:调用函数和做函数的参...
俺也发篇指针的东西,去年写的,暂且叫花式函数指针
http://www.cnblogs.com/logicbaby/articles/1852409.html
关于这些函数指针没有解释太多,只是想让大家看看函数指针的强大,算是胡乱涂鸦吧。其实只要掌握组合的规则,函数指针还是很简单的,只是看上去眼花缭乱,很唬人,所以在此就叫“花式函数指针”吧。
1、函数指针的常规用法[code]/* pfunc1.c */
#include
typedef void (*api_unit)(char *); api_unit unit_tbl[] = { (api_unit)mmi_api_start, (api_unit)mmi_api_stop }; void mmi_api_start(char *ptr) {} void mmi_api_stop(char *ptr) { } 问题:mmi_api_start和mmi_api_stop这两个函数名称能被强制转化成api_unit吗?这么转化一般有什么目的呢?
[code]#include
原文:http://www.i170.com/Article/63999/trackback 推荐和参考的材料: http://www.newty.de/fpt/intro.html 更加高级的语言里面,几乎看见不到指针的影子,因为大多数人看来它是危险的,不小心可能导致内存泄漏等问题的发生,不过我们不用担心函数指针会发生类似的问题,因为分配内存和清理内存的操作重来不会发生。 函数指针指向一个函数的地址(不仅仅只有变量才有地址,程序代码会被分配一定的内存空间) 函数指针主要可以实...
原文:http://www.i170.com/Article/63999/trackback 推荐和参考的材料: http://www.newty.de/fpt/intro.html 更加高级的语言里面,几乎看见不到指针的影子,因为大多数人看来它是危险的,不小心可能导致内存泄漏等问题的发生,不过我们不用担心函数指针会发生类似的问题,因为分配内存和清理内存的操作重来不会发生。 函数指针指向一个函数的地址(不仅仅只有变量才有地址,程序代码会被分配一定的内存空间) 函数指针主要可以实...
原文:http://www.i170.com/Article/63999/trackback 推荐和参考的材料: http://www.newty.de/fpt/intro.html 更加高级的语言里面,几乎看见不到指针的影子,因为大多数人看来它是危险的,不小心可能导致内存泄漏等问题的发生,不过我们不用担心函数指针会发生类似的问题,因为分配内存和清理内存的操作重来不会发生。 函数指针指向一个函数的地址(不仅仅只有变量才有地址,程序代码会被分配一定的内存空间) 函数指针主要可以实...