首页 > 其他 > 详细

函数指针及起别名

时间:2020-09-02 15:35:53      阅读:65      评论:0      收藏:0      [点我收藏+]

函数指针

函数指针是指向函数的指针变量 因此函数指针本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如前所述,C编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用指针变量可引用其他类型变量一样,在这些概念上是大体一致的。函数指针有两个用途:调用函数和做函数的参数

函数地址一般都在4的倍数处

函数首地址为 函数第一行指令位置

一般在程序装载基址+0x1000 处 为自定义函数跳转表

调试版会有  

 

函数指针声明

int (_cdecl *pfun)(int ,int);

上述代码声明了一个函数指针pfun  其详细信息为  调用约定为_cdecl   1整形  参2整形  返回值整形

 

函数直接调用:

定义一个函数

Void foo()

{

....

}

直接调用:

foo();

 

函数指针间接调用:

Void (*pfun) ();

Pfun = foo;

Pfun();

 

函数指针类型会进行强类型检查

Typedef  为某类型起别名

Typedef void (*pfun)();

那么  void (*)() == pfun

Typedef int  DWORD

那么 int == DWORD

 

 

函数指针不能做任何运算

函数指针及起别名

原文:https://www.cnblogs.com/Mj-NaijAm/p/13601629.html

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