深入理解C语言(4)函数指针
来源:互联网 发布:淘宝售后投诉有什么用 编辑:程序博客网 时间:2024/05/16 14:42
我们看看下面的例子:
void Function()
{
printf("Call Function!/n");
}
intmain()
{
void (*p)();
*(int*)&p=(int)Function;
(*p) ();
return 0;
}
这是在干什么?*(int*)&p=(int)Function;表示什么意思?
别急,先看这行代码:
void (*p)();
这行代码定义了一个指针变量p,p 指向一个函数,这个函数的参数和返回值都是void。
&p 是求指针变量p 本身的地址,这是一个32 位的二进制常数(32 位系统)。
(int*)&p 表示将地址强制转换成指向int 类型数据的指针。
(int)Function 表示将函数的入口地址强制转换成int 类型的数据。
分析到这里,相信你已经明白*(int*)&p=(int)Function;表示将函数的入口地址赋值给指
针变量p。
那么(*p) ();就是表示对函数的调用。
讲解到这里,相信你已经明白了。其实函数指针与普通指针没什么差别,只是指向的内
容不同而已。
使用函数指针的好处在于,可以将实现同一功能的多个模块统一起来标识,这样一来更
容易后期的维护,系统结构更加清晰。或者归纳为:便于分层设计、利于系统抽象、降低耦
合度以及使接口与实现分开。(摘自牛人)
- 深入理解C语言(4)函数指针
- [转载]深入理解C语言函数指针
- 深入理解C语言函数指针
- 深入理解C语言指针(四)之 函数
- 深入理解C语言指针(一)
- 深入理解C语言指针(二)
- 深入理解C语言指针(三)
- 深入理解C语言指针
- 深入理解C语言指针
- 深入理解C语言指针
- 深入理解C语言指针
- 深入理解C语言指针
- C语言指针深入理解
- 深入理解C语言指针
- 深入理解C语言中的指向函数的指针!
- C语言函数深入理解
- 深入理解C语言中的指向函数的指针和返回指针的函数!
- 深入理解C语言指针的奥秘(yanglilibaobao )
- kill(pid_t pit, int signo)函数特别的用法
- 试下csdn的blog功能
- Action 访问Servlet API的三种方法
- 在帧中继上运行rip协议(3)—点对点子接口
- 用C#实现的文件监视
- 深入理解C语言(4)函数指针
- 北京,月总结
- 转贴:管理没有对错,只有面对事实解决问题 (世界经理人)
- OpenGL 学习1–OpenGL 概述
- 单例模式
- 编程技巧之:Visual Studio 2003和VC6.0与Visual Assist X关联的问题
- Windows 7 使用随笔
- javascript设计模式_第二部分_命令模式
- php头部空行|utf8头部空行|关于bom以及utf-8的问题