码迷,mamicode.com
首页 > 其他好文 > 详细

函数指针

时间:2015-04-02 18:41:59      阅读:107      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!