首页 > 其他 > 详细

函数指针

时间:2015-04-02 18:41:56      阅读:195      评论:0      收藏:0      [点我收藏+]

首先要理解以下三个问题:
(1)C 语言中函数名直接对应于函数生成的指令代码内存中的地址,因此函数名可以直接赋给指向函数的指针
(2)调用函数实际上等同于"调转指令+参数传递处理+回归位置入栈",本质上最核心的操作是将函数生成的目标代
码的首地址赋给 CPU 的 PC 寄存器;
(3)因为函数调用的本质是跳转到某一个地址单元的 code 去执行,所以可以"调用"一个根本就不存在的函数实体

 

typedef void (*lpFunction) ( ); /* 定义一个无参数、无返回类型的函数指针类型*/
/* 定义一个函数指针,指向 CPU 启动后所执行第一条指令的位置*/
lpFunction lpReset = (lpFunction)0xF000FFF0;
lpReset(); /* 调用函数 */

NOTE:

函数无它,唯指令集合耳;你可以调用一个没有函数体的函数,本质上只是换
一个地址开始执行指令!

函数指针

原文:http://www.cnblogs.com/yuankaituo/p/4387572.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!